[json-glib] tests: Verify Serializable::serialize_property()
- From: Emmanuele Bassi <ebassi src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [json-glib] tests: Verify Serializable::serialize_property()
- Date: Thu, 12 Nov 2009 12:30:59 +0000 (UTC)
commit e3ae84e743e1d1a1a0202e900f443e143cb77f45
Author: Emmanuele Bassi <ebassi linux intel com>
Date: Thu Nov 12 11:57:45 2009 +0000
tests: Verify Serializable::serialize_property()
Verify that an object with a custom serialize_property() is effectively
what we expect it to be when it is parsed.
tests/test-serialize-complex.c | 32 ++++++++++++++++++++++++++++++++
1 files changed, 32 insertions(+), 0 deletions(-)
---
diff --git a/tests/test-serialize-complex.c b/tests/test-serialize-complex.c
index 0b361e6..39b5d7d 100644
--- a/tests/test-serialize-complex.c
+++ b/tests/test-serialize-complex.c
@@ -86,6 +86,8 @@ enum
PROP_BLAH
};
+static JsonSerializableIface *serializable_iface = NULL;
+
static void json_serializable_iface_init (gpointer g_iface);
G_DEFINE_TYPE_WITH_CODE (TestObject, test_object, G_TYPE_OBJECT,
@@ -121,6 +123,10 @@ test_object_serialize_property (JsonSerializable *serializable,
json_node_take_object (retval, obj);
}
+ else
+ retval = serializable_iface->serialize_property (serializable,
+ name,
+ value, pspec);
return retval;
}
@@ -130,6 +136,8 @@ json_serializable_iface_init (gpointer g_iface)
{
JsonSerializableIface *iface = g_iface;
+ serializable_iface = g_type_default_interface_peek (JSON_TYPE_SERIALIZABLE);
+
iface->serialize_property = test_object_serialize_property;
}
@@ -235,6 +243,10 @@ static void
test_serialize (void)
{
TestObject *obj = g_object_new (TEST_TYPE_OBJECT, NULL);
+ JsonParser *parser = json_parser_new ();
+ GError *error = NULL;
+ JsonObject *object;
+ JsonNode *node;
gchar *data;
gsize len;
@@ -244,7 +256,27 @@ test_serialize (void)
if (g_test_verbose ())
g_print ("TestObject:\n%s\n", data);
+ parser = json_parser_new ();
+ json_parser_load_from_data (parser, data, -1, &error);
+ g_assert (error == NULL);
+
+ node = json_parser_get_root (parser);
+ g_assert (json_node_get_node_type (node) == JSON_NODE_OBJECT);
+
+ object = json_node_get_object (node);
+ g_assert_cmpint (json_object_get_int_member (object, "foo"), ==, 42);
+ g_assert (json_object_get_boolean_member (object, "bar"));
+ g_assert_cmpstr (json_object_get_string_member (object, "baz"), ==, "Test");
+
+ node = json_object_get_member (object, "blah");
+ g_assert (json_node_get_node_type (node) == JSON_NODE_OBJECT);
+
+ object = json_node_get_object (node);
+ g_assert_cmpint (json_object_get_int_member (object, "foo"), ==, 42);
+ g_assert (json_object_get_boolean_member (object, "bar"));
+
g_free (data);
+ g_object_unref (parser);
g_object_unref (obj);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]