public void ToStringTest() { JsonArray target; JsonValue item1 = AnyInstance.AnyJsonValue1; JsonValue item2 = null; JsonValue item3 = AnyInstance.AnyJsonValue2; target = new JsonArray(item1, item2, item3); string expected = String.Format(CultureInfo.InvariantCulture, "[{0},null,{1}]", item1.ToString(), item3.ToString()); Assert.Equal(expected, target.ToString()); string json = "[\r\n \"hello\",\r\n null,\r\n [\r\n 1,\r\n 2,\r\n 3\r\n ]\r\n]"; target = JsonValue.Parse(json) as JsonArray; Assert.Equal <string>(json.Replace("\r\n", "").Replace(" ", ""), target.ToString()); }
public void DataContractSerializerTest() { ValidateSerialization(new JsonPrimitive(DateTime.Now)); ValidateSerialization(new JsonObject { { "a", 1 }, { "b", 2 }, { "c", 3 } }); ValidateSerialization(new JsonArray { "a", "b", "c", 1, 2, 3 }); JsonObject beforeObject = new JsonObject { { "a", 1 }, { "b", 2 }, { "c", 3 } }; JsonObject afterObject1 = (JsonObject)ValidateSerialization(beforeObject); beforeObject.Add("d", 4); afterObject1.Add("d", 4); Assert.Equal(beforeObject.ToString(), afterObject1.ToString()); JsonObject afterObject2 = (JsonObject)ValidateSerialization(beforeObject); beforeObject.Add("e", 5); afterObject2.Add("e", 5); Assert.Equal(beforeObject.ToString(), afterObject2.ToString()); JsonArray beforeArray = new JsonArray { "a", "b", "c" }; JsonArray afterArray1 = (JsonArray)ValidateSerialization(beforeArray); beforeArray.Add("d"); afterArray1.Add("d"); Assert.Equal(beforeArray.ToString(), afterArray1.ToString()); JsonArray afterArray2 = (JsonArray)ValidateSerialization(beforeArray); beforeArray.Add("e"); afterArray2.Add("e"); Assert.Equal(beforeArray.ToString(), afterArray2.ToString()); }
public void ToStringTest() { JsonObject jo = new JsonObject { { "first", 1 }, { "second", 2 }, { "third", new JsonObject { { "inner_one", 4 }, { "", null }, { "inner_3", "" } } }, { "fourth", new JsonArray { "Item1", 2, false } }, { "fifth", null } }; JsonValue jv = new JsonArray(123, null, jo); string expectedJson = "[\r\n 123,\r\n null,\r\n {\r\n \"first\": 1,\r\n \"second\": 2,\r\n \"third\": {\r\n \"inner_one\": 4,\r\n \"\": null,\r\n \"inner_3\": \"\"\r\n },\r\n \"fourth\": [\r\n \"Item1\",\r\n 2,\r\n false\r\n ],\r\n \"fifth\": null\r\n }\r\n]"; Assert.Equal <string>(expectedJson.Replace("\r\n", "").Replace(" ", ""), jv.ToString()); }
public void ValidJsonArrayRoundTrip() { bool oldValue = CreatorSettings.CreateDateTimeWithSubMilliseconds; CreatorSettings.CreateDateTimeWithSubMilliseconds = false; try { int seed = 1; Log.Info("Seed: {0}", seed); Random rndGen = new Random(seed); JsonArray sourceJson = new JsonArray(new JsonValue[] { PrimitiveCreator.CreateInstanceOfBoolean(rndGen), PrimitiveCreator.CreateInstanceOfByte(rndGen), PrimitiveCreator.CreateInstanceOfDateTime(rndGen), PrimitiveCreator.CreateInstanceOfDateTimeOffset(rndGen), PrimitiveCreator.CreateInstanceOfDecimal(rndGen), PrimitiveCreator.CreateInstanceOfDouble(rndGen), PrimitiveCreator.CreateInstanceOfInt16(rndGen), PrimitiveCreator.CreateInstanceOfInt32(rndGen), PrimitiveCreator.CreateInstanceOfInt64(rndGen), PrimitiveCreator.CreateInstanceOfSByte(rndGen), PrimitiveCreator.CreateInstanceOfSingle(rndGen), PrimitiveCreator.CreateInstanceOfString(rndGen), PrimitiveCreator.CreateInstanceOfUInt16(rndGen), PrimitiveCreator.CreateInstanceOfUInt32(rndGen), PrimitiveCreator.CreateInstanceOfUInt64(rndGen) }); JsonArray newJson = (JsonArray)JsonValue.Parse(sourceJson.ToString()); Log.Info("Original JsonArray object is: {0}", sourceJson); Log.Info("Round-tripped JsonArray object is: {0}", newJson); Assert.True(JsonValueVerifier.Compare(sourceJson, newJson)); } finally { CreatorSettings.CreateDateTimeWithSubMilliseconds = oldValue; } }
public void TestDeeplyNestedArrayGraph() { JsonArray ja = new JsonArray(); JsonArray current = ja; StringBuilder builderExpected = new StringBuilder(); builderExpected.Append('['); int depth = 10000; for (int i = 0; i < depth; i++) { JsonArray next = new JsonArray(); builderExpected.Append('['); current.Add(next); current = next; } for (int i = 0; i < depth + 1; i++) { builderExpected.Append(']'); } Assert.Equal(builderExpected.ToString(), ja.ToString()); }
public void MixedJsonTypeFunctionalTest() { bool oldValue = CreatorSettings.CreateDateTimeWithSubMilliseconds; CreatorSettings.CreateDateTimeWithSubMilliseconds = false; try { int seed = 1; for (int i = 0; i < iterationCount; i++) { seed++; Log.Info("Seed: {0}", seed); Random rndGen = new Random(seed); JsonArray sourceJson = new JsonArray(new List <JsonValue>() { PrimitiveCreator.CreateInstanceOfBoolean(rndGen), PrimitiveCreator.CreateInstanceOfByte(rndGen), PrimitiveCreator.CreateInstanceOfDateTime(rndGen), PrimitiveCreator.CreateInstanceOfDateTimeOffset(rndGen), PrimitiveCreator.CreateInstanceOfDecimal(rndGen), PrimitiveCreator.CreateInstanceOfDouble(rndGen), PrimitiveCreator.CreateInstanceOfInt16(rndGen), PrimitiveCreator.CreateInstanceOfInt32(rndGen), PrimitiveCreator.CreateInstanceOfInt64(rndGen), PrimitiveCreator.CreateInstanceOfSByte(rndGen), PrimitiveCreator.CreateInstanceOfSingle(rndGen), PrimitiveCreator.CreateInstanceOfString(rndGen), PrimitiveCreator.CreateInstanceOfUInt16(rndGen), PrimitiveCreator.CreateInstanceOfUInt32(rndGen), PrimitiveCreator.CreateInstanceOfUInt64(rndGen), new JsonObject(new Dictionary <string, JsonValue>() { { "Boolean", PrimitiveCreator.CreateInstanceOfBoolean(rndGen) }, { "Byte", PrimitiveCreator.CreateInstanceOfByte(rndGen) }, { "DateTime", PrimitiveCreator.CreateInstanceOfDateTime(rndGen) }, { "DateTimeOffset", PrimitiveCreator.CreateInstanceOfDateTimeOffset(rndGen) }, { "Decimal", PrimitiveCreator.CreateInstanceOfDecimal(rndGen) }, { "Double", PrimitiveCreator.CreateInstanceOfDouble(rndGen) }, { "Int16", PrimitiveCreator.CreateInstanceOfInt16(rndGen) }, { "Int32", PrimitiveCreator.CreateInstanceOfInt32(rndGen) }, { "Int64", PrimitiveCreator.CreateInstanceOfInt64(rndGen) }, { "SByte", PrimitiveCreator.CreateInstanceOfSByte(rndGen) }, { "Single", PrimitiveCreator.CreateInstanceOfSingle(rndGen) }, { "String", PrimitiveCreator.CreateInstanceOfString(rndGen) }, { "UInt16", PrimitiveCreator.CreateInstanceOfUInt16(rndGen) }, { "UInt32", PrimitiveCreator.CreateInstanceOfUInt32(rndGen) }, { "UInt64", PrimitiveCreator.CreateInstanceOfUInt64(rndGen) } }) }); JsonArray newJson = (JsonArray)JsonValue.Parse(sourceJson.ToString()); Assert.True(JsonValueVerifier.Compare(sourceJson, newJson)); } } finally { CreatorSettings.CreateDateTimeWithSubMilliseconds = oldValue; } }