diff options
Diffstat (limited to 'json-glib/tests/object.c')
| -rw-r--r-- | json-glib/tests/object.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/json-glib/tests/object.c b/json-glib/tests/object.c index f109464..54b5934 100644 --- a/json-glib/tests/object.c +++ b/json-glib/tests/object.c @@ -140,6 +140,33 @@ test_foreach_member (void) } static void +test_iter (void) +{ + JsonObject *object = NULL; + TestForeachFixture fixture = { 0, }; + JsonObjectIter iter; + const gchar *member_name; + JsonNode *member_node; + + object = json_object_new (); + + json_object_set_int_member (object, "integer", 42); + json_object_set_boolean_member (object, "boolean", TRUE); + json_object_set_string_member (object, "string", "hello"); + json_object_set_double_member (object, "double", 3.14159); + json_object_set_null_member (object, "null"); + + json_object_iter_init (&iter, object); + + while (json_object_iter_next (&iter, &member_name, &member_node)) + verify_foreach (object, member_name, member_node, &fixture); + + g_assert_cmpint (fixture.n_members, ==, json_object_get_size (object)); + + json_object_unref (object); +} + +static void test_empty_member (void) { JsonObject *object = json_object_new (); @@ -173,6 +200,7 @@ main (int argc, g_test_add_func ("/object/set-member", test_set_member); g_test_add_func ("/object/remove-member", test_remove_member); g_test_add_func ("/object/foreach-member", test_foreach_member); + g_test_add_func ("/object/iter", test_iter); g_test_add_func ("/object/empty-member", test_empty_member); return g_test_run (); |
