1 #include <boost/test/auto_unit_test.hpp>
4 #include "zypp/UserData.h"
9 using zypp::callback::UserData;
10 const std::string key( "key" );
12 #define checkIsEmpty(v) \
14 BOOST_CHECK( v.empty() ); \
15 BOOST_CHECK_EQUAL( v.size(), 0 ); \
16 BOOST_CHECK_EQUAL( v.haskey( key ), false ); \
17 BOOST_CHECK_EQUAL( v.hasvalue( key ), false ); \
18 BOOST_CHECK_EQUAL( v.getvalue( key ).empty(), true );
20 #define checkIsNotEmpty(v,s) \
22 BOOST_CHECK( !v.empty() ); \
24 { BOOST_CHECK_EQUAL( v.size(), s ); } \
26 { BOOST_CHECK( v.size() ); } \
27 BOOST_CHECK_EQUAL( v.haskey( key ), true );
30 BOOST_AUTO_TEST_CASE(useruata_default)
35 // set key with empty value
37 checkIsNotEmpty( v, 1 );
38 BOOST_CHECK_EQUAL( v.hasvalue( key ), false );
39 BOOST_CHECK_EQUAL( v.getvalue( key ).empty(), true );
48 BOOST_CHECK_EQUAL( v.hasvalue( key ), true );
49 BOOST_CHECK_EQUAL( v.getvalue( key ).empty(), false );
52 BOOST_CHECK_EQUAL( v.get( key, rs ), false );
53 BOOST_CHECK_EQUAL( v.get( key, ru ), false );
54 BOOST_CHECK_EQUAL( v.get( key, ri ), true );
55 BOOST_CHECK_EQUAL( v.get( key, rc ), false );
56 BOOST_CHECK_EQUAL( ru, 0 );
57 BOOST_CHECK_EQUAL( ri, 42 );
58 BOOST_CHECK_EQUAL( rc, 0 );
61 BOOST_CHECK_EQUAL( v.get( key, rs ), false );
62 BOOST_CHECK_EQUAL( v.get( key, ru ), true );
63 BOOST_CHECK_EQUAL( v.get( key, ri ), false );
64 BOOST_CHECK_EQUAL( v.get( key, rc ), false );
65 BOOST_CHECK_EQUAL( ru, 43 );
66 BOOST_CHECK_EQUAL( ri, 42 );
67 BOOST_CHECK_EQUAL( rc, 0 );
69 // set key with empty value
71 BOOST_CHECK_EQUAL( v.hasvalue( key ), false );
72 BOOST_CHECK_EQUAL( v.getvalue( key ).empty(), true );
73 checkIsNotEmpty( v, 1 );
77 BOOST_CHECK_EQUAL( v.hasvalue( key ), false );
78 BOOST_CHECK_EQUAL( v.getvalue( key ).empty(), true );
81 // const may add but not manip non-empty values
82 const UserData & cv( v );
83 BOOST_CHECK_EQUAL( cv.reset( key ), true ); // add new key: ok
84 BOOST_CHECK_EQUAL( cv.set( key, 42 ), true ); // empty -> non-empty: ok
85 BOOST_CHECK_EQUAL( cv.set( key, 43 ), false );// change non-empty: not ok
86 BOOST_CHECK_EQUAL( cv.reset( key ), false ); // change non-empty: not ok