public void ScalarValueReading() { var writer = new JsonBufferWriter(); writer.WriteString("foobar"); AssertBufferedValueScalarOrNull(JsonToken.String("foobar"), writer); }
public void NullValueReading() { var writer = new JsonBufferWriter(); writer.WriteNull(); AssertBufferedValueScalarOrNull(JsonToken.Null(), writer); }
public void Issue57() { var maxDepth = new JsonBufferWriter().MaxDepth + 1; var json = new string('[', maxDepth) + new string(']', maxDepth); JsonBuffer.From(json); }
static void AssertBufferedValueScalarOrNull(JsonToken expected, JsonBufferWriter writer) { var buffer = writer.GetBuffer(); var reader = buffer.CreateReader(); reader.Read(); reader.Read(); var value = reader.BufferValue(); if (expected.Class == JsonTokenClass.Null) { Assert.IsTrue(value.IsNull); } else { Assert.IsTrue(value.IsScalar); } var vr = value.CreateReader(); Assert.AreEqual(1, vr.Depth); Assert.AreEqual(expected, vr.Token); vr.Read(); vr.ReadToken(JsonTokenClass.EndArray); Assert.IsTrue(vr.EOF); }
public void BufferValueOnMember() { JsonBufferWriter writer = new JsonBufferWriter(); writer.WriteFromReader(JsonText.CreateReader("{foo:bar}")); JsonBufferReader reader = writer.GetBuffer().CreateReader(); reader.Read(); // object start reader.Read(); // foo Assert.AreEqual(JsonToken.String("bar"), reader.BufferValue().CreateReader().Token); }
public void BufferValueOnEOF() { JsonBufferWriter writer = new JsonBufferWriter(); writer.WriteFromReader(JsonText.CreateReader("[]")); JsonBufferReader reader = writer.GetBuffer().CreateReader(); reader.Read(); // array start reader.Read(); // array end Assert.IsTrue(reader.BufferValue().IsEmpty); }
public void BufferValueOnBOF() { JsonBufferWriter writer = new JsonBufferWriter(); writer.WriteFromReader(JsonText.CreateReader("[]")); JsonBuffer buffer = writer.GetBuffer().CreateReader().BufferValue(); Assert.AreEqual(2, buffer.Length); Assert.AreEqual(JsonToken.Array(), buffer[0]); Assert.AreEqual(JsonToken.EndArray(), buffer[1]); }
public void BufferValueOnArrayEnd() { JsonBufferWriter writer = new JsonBufferWriter(); writer.WriteFromReader(JsonText.CreateReader("[[],foo]")); JsonBufferReader reader = writer.GetBuffer().CreateReader(); reader.Read(); // outer array start reader.Read(); // inner array start reader.Read(); // inner array end Assert.AreEqual(JsonToken.String("foo"), reader.BufferValue()[0]); }
public void BufferScalarValue() { JsonBufferWriter writer = new JsonBufferWriter(); writer.WriteString("foobar"); JsonBuffer buffer = writer.GetBuffer(); JsonBufferReader reader = buffer.CreateReader(); reader.Read(); // array start reader.Read(); // string Assert.AreEqual("foobar", reader.BufferValue().CreateReader().BufferValue().CreateReader().ReadString()); }
public void BufferValueOnEOF() { var writer = new JsonBufferWriter(); writer.WriteFromReader(JsonText.CreateReader("[]")); var reader = writer.GetBuffer().CreateReader(); reader.Read(); // array start reader.Read(); // array end Assert.IsTrue(reader.BufferValue().IsEmpty); }
public void BufferValueOnBOF() { var writer = new JsonBufferWriter(); writer.WriteFromReader(JsonText.CreateReader("[]")); var buffer = writer.GetBuffer().CreateReader().BufferValue(); Assert.AreEqual(2, buffer.Length); Assert.AreEqual(JsonToken.Array(), buffer[0]); Assert.AreEqual(JsonToken.EndArray(), buffer[1]); }
public void BufferValueOnMember() { var writer = new JsonBufferWriter(); writer.WriteFromReader(JsonText.CreateReader("{foo:bar}")); var reader = writer.GetBuffer().CreateReader(); reader.Read(); // object start reader.Read(); // foo Assert.AreEqual(JsonToken.String("bar"), reader.BufferValue().CreateReader().Token); }
public void BufferValueOnObjectEnd() { var writer = new JsonBufferWriter(); writer.WriteFromReader(JsonText.CreateReader("[{},foo]")); var reader = writer.GetBuffer().CreateReader(); reader.Read(); // outer object start reader.Read(); // inner object start reader.Read(); // inner object end Assert.AreEqual(JsonToken.String("foo"), reader.BufferValue()[0]); }
public void BufferScalarValue() { var writer = new JsonBufferWriter(); writer.WriteString("foobar"); var buffer = writer.GetBuffer(); var reader = buffer.CreateReader(); reader.Read(); // array start reader.Read(); // string Assert.AreEqual("foobar", reader.BufferValue().CreateReader().BufferValue().CreateReader().ReadString()); }
public static JsonBuffer ToObject(params NamedJsonBuffer[] members) { if (members == null) throw new ArgumentNullException("members"); if (members.Length == 0) return StockJsonBuffers.EmptyObject; JsonBufferWriter writer = new JsonBufferWriter(); writer.WriteStartObject(); foreach (NamedJsonBuffer member in members) { writer.WriteMember(member.Name); writer.WriteFromReader(member.Buffer.CreateReader()); } writer.WriteEndObject(); return writer.GetBuffer(); }
public static JsonBuffer From(JsonReader reader) { if (reader == null) { throw new ArgumentNullException("reader"); } JsonBufferReader bufferReader = reader as JsonBufferReader; if (bufferReader != null) { return(bufferReader.BufferValue()); } if (!reader.MoveToContent()) { return(Empty); } if (reader.TokenClass == JsonTokenClass.Member) { reader.Read(); } bool structured = reader.TokenClass == JsonTokenClass.Array || reader.TokenClass == JsonTokenClass.Object; JsonBufferWriter writer = new JsonBufferWriter(); writer.MaxDepth = reader.MaxDepth; writer.WriteFromReader(reader); JsonBuffer buffer = writer.GetBuffer(); if (!structured) { bufferReader = buffer.CreateReader(); bufferReader.MoveToContent(); bufferReader.Read(); buffer = bufferReader.BufferValue(); } return(buffer); }
public void WritingReading() { var writer = new JsonBufferWriter(); writer.WriteStartArray(); writer.WriteString("foo"); writer.WriteString("bar"); writer.WriteString("baz"); writer.WriteEndArray(); var buffer = writer.GetBuffer(); Assert.AreEqual(5, buffer.Length); var reader = buffer.CreateReader(); reader.ReadToken(JsonTokenClass.Array); Assert.AreEqual("foo", reader.ReadString()); Assert.AreEqual("bar", reader.ReadString()); Assert.AreEqual("baz", reader.ReadString()); reader.ReadToken(JsonTokenClass.EndArray); Assert.IsTrue(reader.EOF); }
public static JsonBuffer ToObject(params NamedJsonBuffer[] members) { if (members == null) { throw new ArgumentNullException("members"); } if (members.Length == 0) { return(StockJsonBuffers.EmptyObject); } JsonBufferWriter writer = new JsonBufferWriter(); writer.WriteStartObject(); foreach (NamedJsonBuffer member in members) { writer.WriteMember(member.Name); writer.WriteFromReader(member.Buffer.CreateReader()); } writer.WriteEndObject(); return(writer.GetBuffer()); }
public static JsonBuffer From(JsonReader reader) { if (reader == null) throw new ArgumentNullException("reader"); JsonBufferReader bufferReader = reader as JsonBufferReader; if (bufferReader != null) return bufferReader.BufferValue(); if (!reader.MoveToContent()) return Empty; if (reader.TokenClass == JsonTokenClass.Member) reader.Read(); bool structured = reader.TokenClass == JsonTokenClass.Array || reader.TokenClass == JsonTokenClass.Object; JsonBufferWriter writer = new JsonBufferWriter(); writer.WriteFromReader(reader); JsonBuffer buffer = writer.GetBuffer(); if (!structured) { bufferReader = buffer.CreateReader(); bufferReader.MoveToContent(); bufferReader.Read(); buffer = bufferReader.BufferValue(); } return buffer; }
public void NullValueReading() { JsonBufferWriter writer = new JsonBufferWriter(); writer.WriteNull(); AssertBufferedValueScalarOrNull(JsonToken.Null(), writer); }
public void ScalarValueReading() { JsonBufferWriter writer = new JsonBufferWriter(); writer.WriteString("foobar"); AssertBufferedValueScalarOrNull(JsonToken.String("foobar"), writer); }
public void WritingReading() { JsonBufferWriter writer = new JsonBufferWriter(); writer.WriteStartArray(); writer.WriteString("foo"); writer.WriteString("bar"); writer.WriteString("baz"); writer.WriteEndArray(); JsonBuffer buffer = writer.GetBuffer(); Assert.AreEqual(5, buffer.Length); JsonBufferReader reader = buffer.CreateReader(); reader.ReadToken(JsonTokenClass.Array); Assert.AreEqual("foo", reader.ReadString()); Assert.AreEqual("bar", reader.ReadString()); Assert.AreEqual("baz", reader.ReadString()); reader.ReadToken(JsonTokenClass.EndArray); Assert.IsTrue(reader.EOF); }
private static void AssertBufferedValueScalarOrNull(JsonToken expected, JsonBufferWriter writer) { JsonBuffer buffer = writer.GetBuffer(); JsonBufferReader reader = buffer.CreateReader(); reader.Read(); reader.Read(); JsonBuffer value = reader.BufferValue(); if (expected.Class == JsonTokenClass.Null) Assert.IsTrue(value.IsNull); else Assert.IsTrue(value.IsScalar); JsonBufferReader vr = value.CreateReader(); Assert.AreEqual(1, vr.Depth); Assert.AreEqual(expected, vr.Token); vr.Read(); vr.ReadToken(JsonTokenClass.EndArray); Assert.IsTrue(vr.EOF); }
public void Issue57() { int maxDepth = new JsonBufferWriter().MaxDepth + 1; string json = new string('[', maxDepth) + new string(']', maxDepth); JsonBuffer.From(json); }