public void write_object_with_array(string expected) { using (var stream = new MemoryStream()) { using (var writer = new JsonWriter(stream)) { writer.Object(); writer.Array("example"); writer.ArrayNull(); writer.ArrayNumber("1"); writer.ArrayValue(2L); writer.ArrayValue(3m); writer.ArrayValue(4d); writer.ArrayValue(" "); writer.ArrayValue(true); writer.Object(); writer.Pair("one", 1); writer.EndObject(); writer.EndArray(); writer.EndObject(); } using (var reader = new StreamReader(stream)) { var actual = reader.ReadToEnd(); Assert.Equal(expected, actual); } } }
public void op_ArrayNumber_string_whenParentNotArray() { using (var stream = new MemoryStream()) { using (var writer = new JsonWriter(stream)) { writer.Object(); // ReSharper disable AccessToDisposedClosure Assert.Throws <InvalidOperationException>(() => writer.ArrayNumber("example")); // ReSharper restore AccessToDisposedClosure } } }
public void op_ArrayNumber_stringEmpty(string value) { using (var stream = new MemoryStream()) { using (var writer = new JsonWriter(stream)) { writer.Object(); writer.Array("example"); // ReSharper disable AccessToDisposedClosure Assert.Throws <ArgumentOutOfRangeException>(() => writer.ArrayNumber(value)); // ReSharper restore AccessToDisposedClosure } } }
public void op_ArrayNumber_string(string value, string expected) { using (var stream = new MemoryStream()) { using (var writer = new JsonWriter(stream)) { writer.Object(); writer.Array("example"); writer.ArrayNumber(value); writer.EndArray(); writer.EndObject(); } using (var reader = new StreamReader(stream)) { var actual = reader.ReadToEnd(); Assert.Equal(expected, actual); } } }
private static void WriteJsonArray(JsonWriter writer, string name, JsonArray value) { if (null == name) { writer.Array(); } else { writer.Array(name); } foreach (var item in value.Values) { var obj = item as IJsonSerializable; if (null != obj) { writer.Object(); obj.WriteJson(writer); writer.EndObject(); continue; } var number = item as JsonNumber; if (null != number) { writer.ArrayNumber(number.Value); continue; } var str = item as JsonString; if (null != str) { writer.ArrayValue(str.Value); continue; } var array = item as JsonArray; if (null != array) { WriteJsonArray(writer, null, array); continue; } if (item is JsonNull) { writer.ArrayNull(); } else if (item is JsonTrue) { writer.ArrayValue(true); } else if (item is JsonFalse) { writer.ArrayValue(false); } } writer.EndArray(); }
public void op_ArrayNumber_string(string value, string expected) { using (var stream = new MemoryStream()) { using (var writer = new JsonWriter(stream)) { writer.Object(); writer.Array("example"); writer.ArrayNumber(value); writer.EndArray(); writer.EndObject(); } using (var reader = new StreamReader(stream)) { var actual = reader.ReadToEnd(); Assert.Equal(expected, actual); } } }
public void op_ArrayNumber_string_whenParentNotArray() { using (var stream = new MemoryStream()) { using (var writer = new JsonWriter(stream)) { writer.Object(); // ReSharper disable AccessToDisposedClosure Assert.Throws<InvalidOperationException>(() => writer.ArrayNumber("example")); // ReSharper restore AccessToDisposedClosure } } }
public void op_ArrayNumber_stringEmpty(string value) { using (var stream = new MemoryStream()) { using (var writer = new JsonWriter(stream)) { writer.Object(); writer.Array("example"); // ReSharper disable AccessToDisposedClosure Assert.Throws<ArgumentOutOfRangeException>(() => writer.ArrayNumber(value)); // ReSharper restore AccessToDisposedClosure } } }
public void write_object_with_array(string expected) { using (var stream = new MemoryStream()) { using (var writer = new JsonWriter(stream)) { writer.Object(); writer.Array("example"); writer.ArrayNull(); writer.ArrayNumber("1"); writer.ArrayValue(2L); writer.ArrayValue(3m); writer.ArrayValue(4d); writer.ArrayValue(" "); writer.ArrayValue(true); writer.Object(); writer.Pair("one", 1); writer.EndObject(); writer.EndArray(); writer.EndObject(); } using (var reader = new StreamReader(stream)) { var actual = reader.ReadToEnd(); Assert.Equal(expected, actual); } } }