Skip to content

Commit bccff61

Browse files
committed
Test operator[] for objects
1 parent e93637a commit bccff61

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

src/test/json/index.cc

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,32 @@ namespace tao
5858
TEST_ASSERT( v[ 0 ] == 1 );
5959
v[ 0 ] = 2;
6060
TEST_ASSERT( v[ 0 ] == 2 );
61+
62+
TEST_ASSERT( "{\"foo\":42}"_json.at( "foo" ) == 42 );
63+
TEST_THROWS( "{\"foo\":42}"_json.at( "bar" ) );
64+
TEST_ASSERT( "{\"foo\":1,\"bar\":2}"_json.at( "foo" ) == 1 );
65+
TEST_ASSERT( "{\"foo\":1,\"bar\":2}"_json.at( "bar" ) == 2 );
66+
67+
TEST_ASSERT( "{\"foo\":42}"_json[ "foo" ] == 42 );
68+
TEST_ASSERT( "{\"foo\":42}"_json[ "bar" ] == null );
69+
TEST_ASSERT( "{\"foo\":1,\"bar\":2}"_json[ "foo" ] == 1 );
70+
TEST_ASSERT( "{\"foo\":1,\"bar\":2}"_json[ "bar" ] == 2 );
71+
72+
TEST_THROWS( "42"_json.at( "foo" ) );
73+
TEST_THROWS( "[]"_json.at( "foo" ) );
74+
TEST_THROWS( "{}"_json.at( "foo" ) );
75+
TEST_THROWS( "{\"foo\":42}"_json.at( "bar" ) );
76+
77+
TEST_ASSERT( "{}"_json[ "foo" ] == null );
78+
TEST_ASSERT( "{\"foo\":42}"_json[ "bar" ] == null );
79+
80+
value v2 = empty_object;
81+
TEST_THROWS( v2.at( "foo" ) );
82+
v2[ "foo" ] = 1;
83+
TEST_ASSERT( v2.at( "foo" ) == 1 );
84+
std::string s = "foo";
85+
v2[ s ] = 2;
86+
TEST_ASSERT( v2.at( "foo" ) == 2 );
6187
}
6288

6389
} // json

0 commit comments

Comments
 (0)