6 #include <boost/test/auto_unit_test.hpp>
8 #include "zypp/parser/yum/RepomdFileReader.h"
10 #include "zypp/PathInfo.h"
14 using namespace boost::unit_test;
16 using namespace zypp::parser::yum;
18 #define DATADIR (Pathname(TESTS_SRC_DIR) + "parser/yum/data")
26 bool operator()( OnMediaLocation &&loc, const std::string &t )
28 items.push_back( make_pair( t, std::move(loc) ) );
32 vector<pair<std::string, OnMediaLocation> > items;
35 BOOST_AUTO_TEST_CASE(repomd_read)
37 list<Pathname> entries;
38 if ( filesystem::readdir( entries, DATADIR, false ) != 0 )
39 ZYPP_THROW(Exception("failed to read directory"));
41 for ( list<Pathname>::const_iterator it = entries.begin(); it != entries.end(); ++it )
44 if ( ( file.basename().substr(0, 6) == "repomd" ) && (file.extension() == ".xml" ) )
49 RepomdFileReader( file, std::ref(collect) );
51 std::ifstream ifs( file.extend(".solution").asString().c_str() );
53 unsigned int count = 0;
54 while ( ifs && !ifs.eof() )
60 BOOST_REQUIRE( count < collect.items.size() );
61 BOOST_CHECK_EQUAL( collect.items[count].first, dtype );
65 getline(ifs, checksum_type);
66 getline(ifs, checksum);
67 BOOST_CHECK_EQUAL( collect.items[count].second.checksum(), CheckSum(checksum_type, checksum) );
71 BOOST_CHECK_EQUAL( collect.items[count].second.filename(), Pathname(loc) );
75 BOOST_CHECK_EQUAL( collect.items.size(), count );
81 // vim: set ts=2 sts=2 sw=2 ai et: