3 // tests for Capabilities
8 #include <boost/test/floating_point_comparison.hpp>
9 #include <boost/test/unit_test.hpp>
11 #include "zypp/Capability.h"
13 using boost::unit_test::test_suite;
14 using boost::unit_test::test_case;
15 using boost::test_tools::close_at_tolerance;
20 BOOST_AUTO_TEST_CASE(capabilities_test)
22 // Resolvable::Kind kind = ResTraits<zypp::Package>::kind;
23 // CapFactory factory;
25 // Edition edition ("1.0", "42");
26 // Capability cap = factory.parse ( kind, "foo", "=", "1.0-42");
27 // BOOST_CHECK_EQUAL( cap.asString(), "foo == 1.0-42" );
28 // BOOST_CHECK_EQUAL( cap.index(), "foo");
29 // BOOST_CHECK_EQUAL( cap.op(), Rel::EQ);
30 // BOOST_CHECK_EQUAL( cap.edition(), edition);
32 // Capability cap2 = factory.parse ( kind, "foo", Rel::EQ, edition);
33 // BOOST_CHECK_EQUAL( cap2.index(), cap.index());
34 // BOOST_CHECK_EQUAL( cap2.op(), cap.op());
35 // BOOST_CHECK_EQUAL( cap2.edition(), cap.edition());
37 // Capability cap3 = factory.parse ( kind, "foo = 1.0-42");
38 // BOOST_CHECK_EQUAL( cap3.index(), cap.index());
39 // BOOST_CHECK_EQUAL( cap3.op(), cap.op());
40 // BOOST_CHECK_EQUAL( cap3.edition(), cap.edition());
42 // Capability cap6 = factory.parse ( kind, "kdelibs* > 1.5");
43 // BOOST_CHECK_EQUAL( cap6.index(), "kdelibs*");
44 // BOOST_CHECK_EQUAL( cap6.op(), Rel::GT);
45 // BOOST_CHECK_EQUAL( cap6.edition(), Edition("1.5"));
48 // string bash = "/bin/bash";
49 // Capability cap4 = factory.parse ( kind, bash);
50 // BOOST_CHECK_EQUAL(cap4.index(), bash);
51 // BOOST_CHECK_EQUAL(cap4.op(), Rel::NONE);
52 // BOOST_CHECK_EQUAL(cap4.edition(), Edition::noedition);
54 // string hal = "hal(smp)";
55 // Capability cap5 = factory.parse ( kind, hal);
56 // BOOST_CHECK_EQUAL(cap5.index(), "hal()");
57 // BOOST_CHECK_EQUAL(cap5.op(), Rel::NONE);
58 // BOOST_CHECK_EQUAL(cap5.edition(), Edition::noedition);
60 Capability c0( 0 ); // id 0
61 Capability c1( 1 ); // id 1
62 Capability cD; // default constructed empty
63 Capability cE( "" );// empty
65 BOOST_CHECK_EQUAL( c0.id(), 0 );
66 BOOST_CHECK_EQUAL( c1.id(), 1 );
67 BOOST_CHECK_EQUAL( Capability().id(), 1 ); // default constructed empty
68 BOOST_CHECK_EQUAL( Capability("").id(), 1 ); // empty
70 BOOST_CHECK_EQUAL( c0.asString(), "" );
71 BOOST_CHECK_EQUAL( c1.asString(), "" );
73 BOOST_CHECK_EQUAL( c0.empty(), true );
74 BOOST_CHECK_EQUAL( c1.empty(), true );
76 BOOST_CHECK_EQUAL( c0.detail().kind(), CapDetail::NOCAP );
77 BOOST_CHECK_EQUAL( c1.detail().kind(), CapDetail::NOCAP );
79 BOOST_CHECK_EQUAL( ( c0 == c1 ), false );
80 BOOST_CHECK_EQUAL( Capability::matches( c0, c1 ), CapMatch::yes );