Imported Upstream version 17.25.3
[platform/upstream/libzypp.git] / tests / zypp / RepoStatus_test.cc
1
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>
7
8 #include <boost/test/unit_test.hpp>
9
10 using boost::unit_test::test_suite;
11 using boost::unit_test::test_case;
12
13 using namespace zypp;
14 using namespace zypp::filesystem;
15
16 BOOST_AUTO_TEST_CASE(repostatus_test)
17 {
18   RepoStatus e;
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 };
23
24   BOOST_CHECK_EQUAL( e.empty(), true );
25   BOOST_CHECK_EQUAL( e.timestamp(), 0 );
26   BOOST_CHECK_EQUAL( (e && e).empty(), true );
27
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 );
33   r = e && E;
34   BOOST_CHECK_EQUAL( r.empty(), true );
35   BOOST_CHECK_EQUAL( r.timestamp(), 42 );
36   r = E && E;
37   BOOST_CHECK_EQUAL( r.empty(), true );
38   BOOST_CHECK_EQUAL( r.timestamp(), 42 );
39
40
41   BOOST_CHECK_EQUAL( a.empty(), false );
42   BOOST_CHECK_EQUAL( a.timestamp(), 0 );
43
44   r = e && a;
45   BOOST_CHECK_EQUAL( r.empty(), false );
46   BOOST_CHECK_EQUAL( r.timestamp(), a.timestamp() );    // max timestamp
47
48   r = a && b;
49   BOOST_CHECK_EQUAL( r, (b && a) );
50   BOOST_CHECK_EQUAL( r.timestamp(), b.timestamp() );    // max timestamp
51
52   r = a && b && c;
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
56 }