[json-glib] tests: Verify Array.get_elements()
- From: Emmanuele Bassi <ebassi src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [json-glib] tests: Verify Array.get_elements()
- Date: Sat, 2 Jan 2010 23:58:23 +0000 (UTC)
commit 3c33b61738d74b732805b497accec830b1a05796
Author: Emmanuele Bassi <ebassi linux intel com>
Date: Fri Jan 1 18:23:16 2010 +0000
tests: Verify Array.get_elements()
While verifying Array.foreach() we should also verify that the list we
are iterating on is the same returned by the get_elements() method.
json-glib/tests/array-test.c | 22 +++++++++++++++++-----
1 files changed, 17 insertions(+), 5 deletions(-)
---
diff --git a/json-glib/tests/array-test.c b/json-glib/tests/array-test.c
index 7c29cdf..ce8242b 100644
--- a/json-glib/tests/array-test.c
+++ b/json-glib/tests/array-test.c
@@ -49,17 +49,19 @@ test_remove_element (void)
typedef struct _TestForeachFixture
{
+ GList *elements;
gint n_elements;
+ gint iterations;
} TestForeachFixture;
static const struct {
JsonNodeType element_type;
GType element_gtype;
} type_verify[] = {
- { JSON_NODE_VALUE, G_TYPE_INT64 },
+ { JSON_NODE_VALUE, G_TYPE_INT64 },
{ JSON_NODE_VALUE, G_TYPE_BOOLEAN },
- { JSON_NODE_VALUE, G_TYPE_STRING },
- { JSON_NODE_NULL, G_TYPE_INVALID }
+ { JSON_NODE_VALUE, G_TYPE_STRING },
+ { JSON_NODE_NULL, G_TYPE_INVALID }
};
static void
@@ -70,10 +72,11 @@ verify_foreach (JsonArray *array,
{
TestForeachFixture *fixture = user_data;
+ g_assert (g_list_find (fixture->elements, element_node));
g_assert (json_node_get_node_type (element_node) == type_verify[index_].element_type);
g_assert (json_node_get_value_type (element_node) == type_verify[index_].element_gtype);
- fixture->n_elements += 1;
+ fixture->iterations += 1;
}
static void
@@ -87,10 +90,19 @@ test_foreach_element (void)
json_array_add_string_element (array, "hello");
json_array_add_null_element (array);
+ fixture.elements = json_array_get_elements (array);
+ g_assert (fixture.elements != NULL);
+
+ fixture.n_elements = json_array_get_length (array);
+ g_assert_cmpint (fixture.n_elements, ==, g_list_length (fixture.elements));
+
+ fixture.iterations = 0;
+
json_array_foreach_element (array, verify_foreach, &fixture);
- g_assert_cmpint (fixture.n_elements, ==, json_array_get_length (array));
+ g_assert_cmpint (fixture.iterations, ==, fixture.n_elements);
+ g_list_free (fixture.elements);
json_array_unref (array);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]