JSONTEST_FIXTURE( ValueTest, isArray ) { IsCheck checks; checks.isArray_ = true; JSONTEST_ASSERT_PRED( checkIs( emptyArray_, checks ) ); JSONTEST_ASSERT_PRED( checkIs( array1_, checks ) ); }
JSONTEST_FIXTURE( ValueTest, isObject ) { IsCheck checks; checks.isObject_ = true; JSONTEST_ASSERT_PRED( checkIs( emptyObject_, checks ) ); JSONTEST_ASSERT_PRED( checkIs( object1_, checks ) ); }
JSONTEST_FIXTURE( ValueTest, compareInt ) { JSONTEST_ASSERT_PRED( checkIsLess( 0, 10 ) ); JSONTEST_ASSERT_PRED( checkIsEqual( 10, 10 ) ); JSONTEST_ASSERT_PRED( checkIsEqual( -10, -10 ) ); JSONTEST_ASSERT_PRED( checkIsLess( -10, 0 ) ); }
JSONTEST_FIXTURE( ValueTest, compareDouble ) { JSONTEST_ASSERT_PRED( checkIsLess( 0.0, 10.0 ) ); JSONTEST_ASSERT_PRED( checkIsEqual( 10.0, 10.0 ) ); JSONTEST_ASSERT_PRED( checkIsEqual( -10.0, -10.0 ) ); JSONTEST_ASSERT_PRED( checkIsLess( -10.0, 0.0 ) ); }
JSONTEST_FIXTURE( ValueTest, isString ) { IsCheck checks; checks.isString_ = true; JSONTEST_ASSERT_PRED( checkIs( emptyString_, checks ) ); JSONTEST_ASSERT_PRED( checkIs( string_, checks ) ); JSONTEST_ASSERT_PRED( checkIs( string1_, checks ) ); }
JSONTEST_FIXTURE( ValueTest, isUInt ) { IsCheck checks; checks.isUInt_ = true; checks.isNumeric_ = true; checks.isIntegral_ = true; JSONTEST_ASSERT_PRED( checkIs( unsignedInteger_, checks ) ); JSONTEST_ASSERT_PRED( checkIs( smallUnsignedInteger_, checks ) ); }
JSONTEST_FIXTURE( ValueTest, isBool ) { IsCheck checks; checks.isBool_ = true; checks.isIntegral_ = true; checks.isNumeric_ = true; JSONTEST_ASSERT_PRED( checkIs( false_, checks ) ); JSONTEST_ASSERT_PRED( checkIs( true_, checks ) ); }
JSONTEST_FIXTURE( ValueTest, size ) { JSONTEST_ASSERT_PRED( checkMemberCount(emptyArray_, 0) ); JSONTEST_ASSERT_PRED( checkMemberCount(emptyObject_, 0) ); JSONTEST_ASSERT_PRED( checkMemberCount(array1_, 1) ); JSONTEST_ASSERT_PRED( checkMemberCount(object1_, 1) ); JSONTEST_ASSERT_PRED( checkMemberCount(null_, 0) ); JSONTEST_ASSERT_PRED( checkMemberCount(integer_, 0) ); JSONTEST_ASSERT_PRED( checkMemberCount(real_, 0) ); JSONTEST_ASSERT_PRED( checkMemberCount(emptyString_, 0) ); JSONTEST_ASSERT_PRED( checkMemberCount(string_, 0) ); JSONTEST_ASSERT_PRED( checkMemberCount(true_, 0) ); }
JSONTEST_FIXTURE( ValueTest, isDouble ) { IsCheck checks; checks.isDouble_ = true; checks.isNumeric_ = true; JSONTEST_ASSERT_PRED( checkIs( real_, checks ) ); }
JSONTEST_FIXTURE( ValueTest, isNull ) { IsCheck checks; checks.isNull_ = true; checks.isObject_ = true; checks.isArray_ = true; JSONTEST_ASSERT_PRED( checkIs( null_, checks ) ); }
JSONTEST_FIXTURE( ValueTest, compareString ) { JSONTEST_ASSERT_PRED( checkIsLess( "", " " ) ); JSONTEST_ASSERT_PRED( checkIsLess( "", "a" ) ); JSONTEST_ASSERT_PRED( checkIsLess( "abcd", "zyui" ) ); JSONTEST_ASSERT_PRED( checkIsLess( "abc", "abcd" ) ); JSONTEST_ASSERT_PRED( checkIsEqual( "abcd", "abcd" ) ); JSONTEST_ASSERT_PRED( checkIsEqual( " ", " " ) ); JSONTEST_ASSERT_PRED( checkIsLess( "ABCD", "abcd" ) ); JSONTEST_ASSERT_PRED( checkIsEqual( "ABCD", "ABCD" ) ); }
JSONTEST_FIXTURE( ValueTest, compareType ) { // object of different type are ordered according to their type JSONTEST_ASSERT_PRED( checkIsLess( Json::Value(), Json::Value(1) ) ); JSONTEST_ASSERT_PRED( checkIsLess( Json::Value(1), Json::Value(1u) ) ); JSONTEST_ASSERT_PRED( checkIsLess( Json::Value(1u), Json::Value(1.0) ) ); JSONTEST_ASSERT_PRED( checkIsLess( Json::Value(1.0), Json::Value("a") ) ); JSONTEST_ASSERT_PRED( checkIsLess( Json::Value("a"), Json::Value(true) ) ); JSONTEST_ASSERT_PRED( checkIsLess( Json::Value(true), Json::Value(Json::arrayValue) ) ); JSONTEST_ASSERT_PRED( checkIsLess( Json::Value(Json::arrayValue), Json::Value(Json::objectValue) ) ); }
void ValueTest::checkMemberCount( Json::Value &value, unsigned int expectedCount ) { JSONTEST_ASSERT_EQUAL( expectedCount, value.size() ); unsigned int count = 0; Json::Value::iterator itEnd = value.end(); for ( Json::Value::iterator it = value.begin(); it != itEnd; ++it ) { ++count; } JSONTEST_ASSERT_EQUAL( expectedCount, count ) << "Json::Value::iterator"; JSONTEST_ASSERT_PRED( checkConstMemberCount(value, expectedCount) ); }
JSONTEST_FIXTURE( ValueTest, compareObject ) { // object compare size then content Json::Value emptyObject(Json::objectValue); Json::Value l1aObject; l1aObject["key1"] = 0; Json::Value l1bObject; l1aObject["key1"] = 10; Json::Value l2aObject; l2aObject["key1"] = 0; l2aObject["key2"] = 0; JSONTEST_ASSERT_PRED( checkIsLess( emptyObject, l1aObject ) ); JSONTEST_ASSERT_PRED( checkIsLess( emptyObject, l2aObject ) ); JSONTEST_ASSERT_PRED( checkIsLess( l1aObject, l2aObject ) ); JSONTEST_ASSERT_PRED( checkIsEqual( emptyObject, Json::Value( emptyObject ) ) ); JSONTEST_ASSERT_PRED( checkIsEqual( l1aObject, Json::Value( l1aObject ) ) ); JSONTEST_ASSERT_PRED( checkIsEqual( l2aObject, Json::Value( l2aObject ) ) ); }
JSONTEST_FIXTURE( ValueTest, compareArray ) { // array compare size then content Json::Value emptyArray(Json::arrayValue); Json::Value l1aArray; l1aArray.append( 0 ); Json::Value l1bArray; l1bArray.append( 10 ); Json::Value l2aArray; l2aArray.append( 0 ); l2aArray.append( 0 ); Json::Value l2bArray; l2bArray.append( 0 ); l2bArray.append( 10 ); JSONTEST_ASSERT_PRED( checkIsLess( emptyArray, l1aArray ) ); JSONTEST_ASSERT_PRED( checkIsLess( emptyArray, l2aArray ) ); JSONTEST_ASSERT_PRED( checkIsLess( l1aArray, l2aArray ) ); JSONTEST_ASSERT_PRED( checkIsLess( l2aArray, l2bArray ) ); JSONTEST_ASSERT_PRED( checkIsEqual( emptyArray, Json::Value( emptyArray ) ) ); JSONTEST_ASSERT_PRED( checkIsEqual( l1aArray, Json::Value( l1aArray) ) ); JSONTEST_ASSERT_PRED( checkIsEqual( l2bArray, Json::Value( l2bArray) ) ); }
JSONTEST_FIXTURE( ValueTest, compareNull ) { JSONTEST_ASSERT_PRED( checkIsEqual( Json::Value(), Json::Value() ) ); }
JSONTEST_FIXTURE( ValueTest, compareBoolean ) { JSONTEST_ASSERT_PRED( checkIsLess( false, true ) ); JSONTEST_ASSERT_PRED( checkIsEqual( false, false ) ); JSONTEST_ASSERT_PRED( checkIsEqual( true, true ) ); }
JSONTEST_FIXTURE( ValueTest, compareUInt ) { JSONTEST_ASSERT_PRED( checkIsLess( 0u, 10u ) ); JSONTEST_ASSERT_PRED( checkIsLess( 0u, Json::Value::maxUInt ) ); JSONTEST_ASSERT_PRED( checkIsEqual( 10u, 10u ) ); }