2 #include <zypp/base/Logger.h>
3 #include <zypp/base/Exception.h>
4 #include <zypp/TmpPath.h>
5 #include <zypp/RepoStatus.h>
6 #include <zypp/PathInfo.h>
8 #include <boost/test/unit_test.hpp>
10 using boost::unit_test::test_suite;
11 using boost::unit_test::test_case;
14 using namespace zypp::filesystem;
16 BOOST_AUTO_TEST_CASE(repostatus_test)
19 RepoStatus E { "", 42 }; // empty refers to the checksum only, not to the timestamp!
20 RepoStatus a { "aa", 0 };
21 RepoStatus b { "bb", 1 };
22 RepoStatus c { "cc", 2 };
24 BOOST_CHECK_EQUAL( e.empty(), true );
25 BOOST_CHECK_EQUAL( e.timestamp(), 0 );
26 BOOST_CHECK_EQUAL( (e && e).empty(), true );
28 BOOST_CHECK_EQUAL( E.empty(), true );
29 BOOST_CHECK_EQUAL( E.timestamp(), 42 );
30 RepoStatus r { E && e };
31 BOOST_CHECK_EQUAL( r.empty(), true );
32 BOOST_CHECK_EQUAL( r.timestamp(), 42 );
34 BOOST_CHECK_EQUAL( r.empty(), true );
35 BOOST_CHECK_EQUAL( r.timestamp(), 42 );
37 BOOST_CHECK_EQUAL( r.empty(), true );
38 BOOST_CHECK_EQUAL( r.timestamp(), 42 );
41 BOOST_CHECK_EQUAL( a.empty(), false );
42 BOOST_CHECK_EQUAL( a.timestamp(), 0 );
45 BOOST_CHECK_EQUAL( r.empty(), false );
46 BOOST_CHECK_EQUAL( r.timestamp(), a.timestamp() ); // max timestamp
49 BOOST_CHECK_EQUAL( r, (b && a) );
50 BOOST_CHECK_EQUAL( r.timestamp(), b.timestamp() ); // max timestamp
53 BOOST_CHECK_EQUAL( r, (a && b) && c );
54 BOOST_CHECK_EQUAL( r, a && (b && c) );
55 BOOST_CHECK_EQUAL( r.timestamp(), c.timestamp() ); // max timestamp