WhatProvides testcase extended and iterator fixed
[platform/upstream/libzypp.git] / tests / sat / WhatProvides_test.cc
1 #include "TestSetup.h"
2
3 #define LABELED(V) #V << ":\t" << V
4
5 BOOST_AUTO_TEST_CASE(WhatProvides)
6 {
7   TestSetup test( Arch_x86_64 );
8   test.loadRepo( TESTS_SRC_DIR"/data/openSUSE-11.1" );
9
10   {
11     sat::WhatProvides q( Capability("zypper") );
12     BOOST_CHECK( ! q.empty() );
13     BOOST_CHECK( q.size() == 1 );
14   }
15
16   {
17     sat::WhatProvides q( Capability("zypper.x86_64 == 0.12.5-1.1") );
18     BOOST_CHECK( ! q.empty() );
19     BOOST_CHECK( q.size() == 1 );
20   }
21
22   {
23     sat::WhatProvides q( Capability("zypper.i586 == 0.12.5-1.1") );
24     BOOST_CHECK( q.empty() );
25     BOOST_CHECK( q.size() == 0 );
26   }
27
28   {
29     // sat::WhatProvides::const_iterator requires proper
30     // copyctor and assignment. If they break
31     sat::WhatProvides q;
32     BOOST_CHECK( q.begin() == q.begin() );
33     BOOST_CHECK( q.begin() == q.end()  );
34
35     q = sat::WhatProvides( Capability("zypper.x86_64 == 0.12.5-1.1") );
36     // q no longer empty
37     BOOST_CHECK( q.begin() == q.begin() );
38     BOOST_CHECK( q.begin() != q.end() );
39
40     sat::WhatProvides::const_iterator a;
41     BOOST_CHECK( a == q.end() );
42
43     sat::WhatProvides::const_iterator b( q.begin() );
44     BOOST_CHECK( b == q.begin() );
45
46 //     SEC << LABELED(q.begin()) << endl;
47 //     SEC << LABELED(q.end()) << endl;
48 //     SEC << LABELED(a) << endl;
49 //     SEC << LABELED(b) << endl;
50
51     {
52       a = q.begin();
53       BOOST_CHECK( a == q.begin() );
54 //       SEC << LABELED(a) << endl;
55 //       SEC << LABELED(b) << endl;
56
57       a = b;
58       BOOST_CHECK( a == b );
59 //       SEC << LABELED(a) << endl;
60 //       SEC << LABELED(b) << endl;
61     }
62     BOOST_CHECK( a == q.begin() );
63   }
64 }