static void test_parse_array_diverse(void **state) { { const char *data = "[1, \"snookie\", 1.0, {}, [], true, false, null ]"; JsonElement *json = JsonParse(&data); assert_true(json); JsonElementDestroy(json); } { const char *data = "[1,\"snookie\",1.0,{},[],true,false,null]"; JsonElement *json = JsonParse(&data); assert_true(json); JsonElementDestroy(json); } }
void SyntaxPrintAsJson(Writer *writer) { JsonElement *syntax_tree = JsonObjectCreate(10); { JsonElement *control_bodies = ExportControlBodiesSyntaxAsJson(); JsonObjectAppendObject(syntax_tree, "control-bodies", control_bodies); } { JsonElement *bundle_types = JsonObjectCreate(10); int i = 0; for (i = 0; CONTROL_BODIES[i].body_type != NULL; i++) { JsonElement *bundle_type = ExportBundleTypeSyntaxAsJson(CONTROL_BODIES[i].body_type); JsonObjectAppendObject(bundle_types, CONTROL_BODIES[i].body_type, bundle_type); } JsonObjectAppendObject(syntax_tree, "bundle-types", bundle_types); } JsonElementPrint(writer, syntax_tree, 0); JsonElementDestroy(syntax_tree); }
static void test_show_object_compound(void **state) { JsonElement *json = JsonObjectCreate(10); JsonObjectAppendString(json, "first", "one"); { JsonElement *inner = JsonObjectCreate(10); JsonObjectAppendString(inner, "third", "three"); JsonObjectAppendObject(json, "second", inner); } { JsonElement *inner = JsonObjectCreate(10); JsonObjectAppendString(inner, "fifth", "five"); JsonObjectAppendObject(json, "fourth", inner); } Writer *writer = StringWriter(); JsonElementPrint(writer, json, 0); char *output = StringWriterClose(writer); assert_string_equal(OBJECT_COMPOUND, output); JsonElementDestroy(json); free(output); }
static void test_new_delete(void **state) { JsonElement *json = JsonObjectCreate(10); JsonObjectAppendString(json, "first", "one"); JsonElementDestroy(json); }
static void test_parse_object_diverse(void **state) { { const char *data = "{ \"a\": 1, \"b\": \"snookie\", \"c\": 1.0, \"d\": {}, \"e\": [], \"f\": true, \"g\": false, \"h\": null }"; JsonElement *json = JsonParse(&data); assert_true(json); JsonElementDestroy(json); } { const char *data = "{\"a\":1,\"b\":\"snookie\",\"c\":1.0,\"d\":{},\"e\":[],\"f\":true,\"g\":false,\"h\":null}"; JsonElement *json = JsonParse(&data); assert_true(json); JsonElementDestroy(json); } }
static void test_detach_key_from_object(void **state) { JsonElement *object = JsonObjectCreate(3); JsonObjectAppendInteger(object, "one", 1); JsonObjectAppendInteger(object, "two", 2); JsonObjectAppendInteger(object, "three", 3); JsonElement *detached = JsonObjectDetachKey(object, "two"); assert_int_equal(2, JsonElementLength(object)); JsonElementDestroy(object); assert_int_equal(1, JsonElementLength(detached)); JsonElementDestroy(detached); }
static void test_object_iterator(void **state) { JsonElement *obj = JsonObjectCreate(10); JsonObjectAppendString(obj, "first", "one"); JsonObjectAppendString(obj, "second", "two"); JsonObjectAppendInteger(obj, "third", 3); JsonObjectAppendBool(obj, "fourth", true); JsonObjectAppendBool(obj, "fifth", false); { JsonIterator it = JsonIteratorInit(obj); assert_string_equal("first", JsonIteratorNextKey(&it)); assert_string_equal("second", JsonIteratorNextKey(&it)); assert_string_equal("third", JsonIteratorNextKey(&it)); assert_string_equal("fourth", JsonIteratorNextKey(&it)); assert_string_equal("fifth", JsonIteratorNextKey(&it)); assert_false(JsonIteratorNextKey(&it)); } { JsonIterator it = JsonIteratorInit(obj); assert_string_equal("one", JsonPrimitiveGetAsString(JsonIteratorNextValue(&it))); assert_string_equal("two", JsonPrimitiveGetAsString(JsonIteratorNextValue(&it))); assert_int_equal(3, JsonPrimitiveGetAsInteger(JsonIteratorNextValue(&it))); assert_true(JsonPrimitiveGetAsBool(JsonIteratorNextValue(&it))); assert_false(JsonPrimitiveGetAsBool(JsonIteratorNextValue(&it))); assert_false(JsonIteratorNextValue(&it)); } JsonElementDestroy(obj); }
void PolicyPrintAsJson(Writer *writer, const char *filename, Bundle *bundles, Body *bodies) { JsonElement *json_policy = JsonObjectCreate(10); JsonObjectAppendString(json_policy, "name", filename); { JsonElement *json_bundles = JsonArrayCreate(10); Bundle *bp = NULL; for (bp = bundles; bp != NULL; bp = bp->next) { JsonArrayAppendObject(json_bundles, ExportBundleAsJson(bp)); } JsonObjectAppendArray(json_policy, "bundles", json_bundles); } { JsonElement *json_bodies = JsonArrayCreate(10); Body *bdp = NULL; for (bdp = bodies; bdp != NULL; bdp = bdp->next) { JsonArrayAppendObject(json_bodies, ExportBodyAsJson(bdp)); } JsonObjectAppendArray(json_policy, "bodies", json_bodies); } JsonElementPrint(writer, json_policy, 0); JsonElementDestroy(json_policy); }
static void test_parse_array_extra_closing(void **state) { const char *data = " []]"; JsonElement *json = JsonParse(&data); assert_true(json); JsonElementDestroy(json); }
static void test_parse_trim(void **state) { const char *data = " [] "; JsonElement *json = JsonParse(&data); assert_true(json); JsonElementDestroy(json); }
static void test_parse_array_diverse(void **state) { { const char *data = "[1, \"snookie\", 1.0, {}, [], true, false, null ]"; JsonElement *json = NULL; assert_int_equal(JSON_PARSE_OK, JsonParse(&data, &json)); assert_true(json); JsonElementDestroy(json); } { const char *data = "[1,\"snookie\",1.0,{},[],true,false,null]"; JsonElement *json = NULL; assert_int_equal(JSON_PARSE_OK, JsonParse(&data, &json)); assert_true(json); JsonElementDestroy(json); } }
static void test_parse_array_simple(void **state) { const char *data = ARRAY_SIMPLE; JsonElement *arr = JsonParse(&data); assert_string_equal(JsonArrayGetAsString(arr, 1), "two"); assert_string_equal(JsonArrayGetAsString(arr, 0), "one"); JsonElementDestroy(arr); }
static void test_parse_array_extra_closing(void **state) { const char *data = " []]"; JsonElement *json = NULL; assert_int_equal(JSON_PARSE_OK, JsonParse(&data, &json)); assert_true(json); JsonElementDestroy(json); }
static void test_show_string(void **state) { JsonElement *str = JsonStringCreate("snookie"); Writer *writer = StringWriter(); JsonElementPrint(writer, str, 0); assert_string_equal("\"snookie\"", StringWriterClose(writer)); JsonElementDestroy(str); }
static void test_parse_object_simple(void **state) { const char *data = OBJECT_SIMPLE; JsonElement *obj = JsonParse(&data); assert_string_equal(JsonObjectGetAsString(obj, "second"), "two"); assert_string_equal(JsonObjectGetAsString(obj, "first"), "one"); assert_int_equal(JsonObjectGetAsString(obj, "third"), NULL); JsonElementDestroy(obj); }
static void test_parse_array_object(void **state) { const char *data = ARRAY_OBJECT; JsonElement *arr = JsonParse(&data); JsonElement *first = JsonArrayGetAsObject(arr, 0); assert_string_equal(JsonObjectGetAsString(first, "first"), "one"); JsonElementDestroy(arr); }
static void test_array_get_string(void **state) { JsonElement *arr = JsonArrayCreate(10); JsonArrayAppendString(arr, "first"); JsonArrayAppendString(arr, "second"); assert_string_equal(JsonArrayGetAsString(arr, 1), "second"); assert_string_equal(JsonArrayGetAsString(arr, 0), "first"); JsonElementDestroy(arr); }
static void test_object_get_string(void **state) { JsonElement *obj = JsonObjectCreate(10); JsonObjectAppendString(obj, "first", "one"); JsonObjectAppendString(obj, "second", "two"); assert_string_equal(JsonObjectGetAsString(obj, "second"), "two"); assert_string_equal(JsonObjectGetAsString(obj, "first"), "one"); JsonElementDestroy(obj); }
static void test_show_array_empty(void **state) { JsonElement *array = JsonArrayCreate(10); Writer *writer = StringWriter(); JsonElementPrint(writer, array, 0); assert_string_equal("[]", StringWriterData(writer)); JsonElementDestroy(array); }
static void test_remove_key_from_object(void **state) { JsonElement *object = JsonObjectCreate(3); JsonObjectAppendInteger(object, "one", 1); JsonObjectAppendInteger(object, "two", 2); JsonObjectAppendInteger(object, "three", 3); JsonObjectRemoveKey(object, "two"); assert_int_equal(2, JsonElementLength(object)); JsonElementDestroy(object); }
static void test_show_object_escaped(void **state) { JsonElement *json = JsonObjectCreate(10); JsonObjectAppendString(json, "escaped", "quote\"stuff \t \n\n"); Writer *writer = StringWriter(); JsonElementPrint(writer, json, 0); assert_string_equal(OBJECT_ESCAPED, StringWriterData(writer)); JsonElementDestroy(json); }
static void test_show_array_empty(void **state) { JsonElement *array = JsonArrayCreate(10); Writer *writer = StringWriter(); JsonElementPrint(writer, array, 0); char *output = StringWriterClose(writer); assert_string_equal("[]", output); JsonElementDestroy(array); free(output); }
static void test_show_object_numeric(void **state) { JsonElement *json = JsonObjectCreate(10); JsonObjectAppendReal(json, "real", 1234.5678); JsonObjectAppendInteger(json, "int", -1234567890); Writer *writer = StringWriter(); JsonElementPrint(writer, json, 0); assert_string_equal(OBJECT_NUMERIC, StringWriterData(writer)); JsonElementDestroy(json); }
static void test_show_array_infinity(void **state) { JsonElement *array = JsonArrayCreate(10); JsonArrayAppendReal(array, INFINITY); Writer *writer = StringWriter(); JsonElementPrint(writer, array, 0); char *output = StringWriterClose(writer); assert_string_equal("[\n 0.0000\n]", output); JsonElementDestroy(array); free(output); }
static void test_show_object_simple(void **state) { JsonElement *json = JsonObjectCreate(10); JsonObjectAppendString(json, "first", "one"); JsonObjectAppendString(json, "second", "two"); Writer *writer = StringWriter(); JsonElementPrint(writer, json, 0); assert_string_equal(OBJECT_SIMPLE, StringWriterData(writer)); JsonElementDestroy(json); }
static void test_show_array(void **state) { JsonElement *array = JsonArrayCreate(10); JsonArrayAppendString(array, "one"); JsonArrayAppendString(array, "two"); Writer *writer = StringWriter(); JsonElementPrint(writer, array, 0); assert_string_equal(ARRAY_SIMPLE, StringWriterData(writer)); JsonElementDestroy(array); }
static void test_show_object_boolean(void **state) { JsonElement *json = JsonObjectCreate(10); JsonObjectAppendBool(json, "bool_value", true); Writer *writer = StringWriter(); JsonElementPrint(writer, json, 0); char *output = StringWriterClose(writer); assert_string_equal(OBJECT_BOOLEAN, output); JsonElementDestroy(json); free(output); }
static void test_show_array_numeric(void **state) { JsonElement *array = JsonArrayCreate(10); JsonArrayAppendInteger(array, 123); JsonArrayAppendReal(array, 123.1234); Writer *writer = StringWriter(); JsonElementPrint(writer, array, 0); char *output = StringWriterClose(writer); assert_string_equal(ARRAY_NUMERIC, output); JsonElementDestroy(array); free(output); }
static void test_object_get_array(void **state) { JsonElement *arr = JsonArrayCreate(10); JsonArrayAppendString(arr, "one"); JsonArrayAppendString(arr, "two"); JsonElement *obj = JsonObjectCreate(10); JsonObjectAppendArray(obj, "array", arr); JsonElement *arr2 = JsonObjectGetAsArray(obj, "array"); assert_string_equal(JsonArrayGetAsString(arr2, 1), "two"); JsonElementDestroy(obj); }
static void test_array_iterator(void **state) { JsonElement *arr = JsonArrayCreate(10); JsonArrayAppendString(arr, "first"); JsonArrayAppendString(arr, "second"); { JsonIterator it = JsonIteratorInit(arr); assert_string_equal("first", JsonPrimitiveGetAsString(JsonIteratorNextValue(&it))); assert_string_equal("second", JsonPrimitiveGetAsString(JsonIteratorNextValue(&it))); assert_false(JsonIteratorNextValue(&it)); } JsonElementDestroy(arr); }