6 #include <boost/test/unit_test.hpp>
7 #include <boost/test/parameterized_test.hpp>
8 #include <boost/test/unit_test_log.hpp>
10 #include "zypp/parser/yum/RepomdFileReader.h"
12 #include "zypp/PathInfo.h"
16 using namespace boost::unit_test;
18 using namespace zypp::parser::yum;
19 using source::yum::YUMResourceType;
27 bool callback( const OnMediaLocation &loc, const YUMResourceType &t )
29 items.push_back( make_pair( t, loc ) );
30 //items.push_back(loc);
31 //cout << items.size() << endl;
35 vector<pair<YUMResourceType, OnMediaLocation> > items;
36 //vector<OnMediaLocation> items;
39 void repomd_read_test(const string &dir)
41 list<Pathname> entries;
42 if ( filesystem::readdir( entries, Pathname(dir), false ) != 0 )
43 ZYPP_THROW(Exception("failed to read directory"));
45 for ( list<Pathname>::const_iterator it = entries.begin(); it != entries.end(); ++it )
48 if ( ( file.basename().substr(0, 6) == "repomd" ) && (file.extension() == ".xml" ) )
53 RepomdFileReader( file, bind( &Collector::callback, &collect, _1, _2 ));
55 std::ifstream ifs( file.extend(".solution").asString().c_str() );
58 while ( ifs && ! ifs.eof() && count < collect.items.size() )
66 BOOST_CHECK_EQUAL( collect.items[count].first, YUMResourceType(dtype));
67 getline(ifs, checksum_type);
68 getline(ifs, checksum);
69 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 init_unit_test_suite( int argc, char *argv[] )
85 cout << "RepomdFileReader_test:"
86 " path to directory with test data required as parameter" << endl;
87 return (test_suite *)0;
90 test_suite* test= BOOST_TEST_SUITE("RepomdFileReader");
91 string datadir = argv[1];
92 std::string const params[] = { datadir };
93 test->add(BOOST_PARAM_TEST_CASE(&repomd_read_test,
94 (std::string const*)params, params+1));
98 // vim: set ts=2 sts=2 sw=2 ai et: