Skip to content

Commit b7d5563

Browse files
committed
More tests
1 parent f178bfd commit b7d5563

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

src/test/json/json_patch.cc

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,24 @@ namespace tao
1313
{
1414
void unit_test()
1515
{
16+
const value n = null;
17+
const value ea = empty_array;
18+
const value eo = empty_object;
19+
1620
const value a = { { "a", { { "foo", 1 } } } };
1721
const value b = { { "b", value::array( { 1, 2, 3, 4 } ) } };
22+
1823
const value q = { { "q", { { "bar", 2 } } } };
1924

20-
TEST_ASSERT( patch( {}, value::array( {} ) ) == null );
21-
TEST_ASSERT( patch( a, value::array( {} ) ) == a );
22-
TEST_ASSERT( patch( q, value::array( {} ) ) == q );
25+
TEST_ASSERT( patch( n, ea ) == n );
26+
TEST_ASSERT( patch( ea, ea ) == ea );
27+
TEST_ASSERT( patch( eo, ea ) == eo );
28+
TEST_ASSERT( patch( a, ea ) == a );
29+
TEST_ASSERT( patch( b, ea ) == b );
30+
TEST_ASSERT( patch( q, ea ) == q );
2331

24-
TEST_ASSERT( patch( {}, value::array( { { { "op", "test" }, { "path", "" }, { "value", null } } } ) ) == null );
25-
TEST_THROWS( patch( {}, value::array( { { { "op", "test" }, { "path", "" }, { "value", 42 } } } ) ) );
32+
TEST_ASSERT( patch( n, value::array( { { { "op", "test" }, { "path", "" }, { "value", null } } } ) ) == null );
33+
TEST_THROWS( patch( n, value::array( { { { "op", "test" }, { "path", "" }, { "value", 42 } } } ) ) );
2634

2735
TEST_ASSERT( patch( a, value::array( { { { "op", "test" }, { "path", "/a" }, { "value", { { "foo", 1 } } } } } ) ) == a );
2836
TEST_ASSERT( patch( a, value::array( { { { "op", "test" }, { "path", "/a/foo" }, { "value", 1 } } } ) ) == a );
@@ -31,10 +39,12 @@ namespace tao
3139
TEST_THROWS( patch( a, value::array( { { { "op", "test" }, { "path", "/a" }, { "value", 42 } } } ) ) );
3240

3341
TEST_ASSERT( patch( a, value::array( { { { "op", "remove" }, { "path", "/a" } } } ) ) == empty_object );
42+
TEST_ASSERT( patch( a, value::array( { { { "op", "remove" }, { "path", "/a" } } } ) ) == eo );
3443
TEST_ASSERT( patch( a, value::array( { { { "op", "remove" }, { "path", "/a/foo" } } } ) ) == value( { { "a", empty_object } } ) );
3544
TEST_THROWS( patch( a, value::array( { { { "op", "remove" }, { "path", "/q" } } } ) ) );
3645
TEST_THROWS( patch( a, value::array( { { { "op", "remove" }, { "path", "" } } } ) ) ); // TODO: clarify correctness
3746
TEST_ASSERT( patch( b, value::array( { { { "op", "remove" }, { "path", "/b" } } } ) ) == empty_object );
47+
TEST_ASSERT( patch( b, value::array( { { { "op", "remove" }, { "path", "/b" } } } ) ) == eo );
3848
TEST_ASSERT( patch( b, value::array( { { { "op", "remove" }, { "path", "/b/0" } } } ) ) == value( { { "b", value::array( { 2, 3, 4 } ) } } ) );
3949
TEST_ASSERT( patch( b, value::array( { { { "op", "remove" }, { "path", "/b/1" } } } ) ) == value( { { "b", value::array( { 1, 3, 4 } ) } } ) );
4050
TEST_ASSERT( patch( b, value::array( { { { "op", "remove" }, { "path", "/b/2" } } } ) ) == value( { { "b", value::array( { 1, 2, 4 } ) } } ) );

0 commit comments

Comments
 (0)