Exemplo n.º 1
0
        public void ScalarValueReading()
        {
            var writer = new JsonBufferWriter();

            writer.WriteString("foobar");
            AssertBufferedValueScalarOrNull(JsonToken.String("foobar"), writer);
        }
Exemplo n.º 2
0
        public void NullValueReading()
        {
            var writer = new JsonBufferWriter();

            writer.WriteNull();
            AssertBufferedValueScalarOrNull(JsonToken.Null(), writer);
        }
Exemplo n.º 3
0
        public void Issue57()
        {
            var maxDepth = new JsonBufferWriter().MaxDepth + 1;
            var json     = new string('[', maxDepth) + new string(']', maxDepth);

            JsonBuffer.From(json);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
 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);
 }
Exemplo n.º 6
0
 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);
 }
Exemplo n.º 7
0
 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]);
 }
Exemplo n.º 8
0
 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]);
 }
Exemplo n.º 9
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());
 }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
0
        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]);
        }
Exemplo n.º 12
0
        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);
        }
Exemplo n.º 13
0
        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]);
        }
Exemplo n.º 14
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());
        }
Exemplo n.º 15
0
        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]);
        }
Exemplo n.º 16
0
        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();
        }
Exemplo n.º 17
0
        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);
        }
Exemplo n.º 18
0
        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);
        }
Exemplo n.º 19
0
        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());
        }
Exemplo n.º 20
0
        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;
        }
Exemplo n.º 21
0
 public void NullValueReading()
 {
     JsonBufferWriter writer = new JsonBufferWriter();
     writer.WriteNull();
     AssertBufferedValueScalarOrNull(JsonToken.Null(), writer);
 }
Exemplo n.º 22
0
 public void ScalarValueReading()
 {
     JsonBufferWriter writer = new JsonBufferWriter();
     writer.WriteString("foobar");
     AssertBufferedValueScalarOrNull(JsonToken.String("foobar"), writer);
 }
Exemplo n.º 23
0
 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);
 }
Exemplo n.º 24
0
 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);
 }
Exemplo n.º 25
0
 public void Issue57()
 {
     int maxDepth = new JsonBufferWriter().MaxDepth + 1;
     string json = new string('[', maxDepth) + new string(']', maxDepth);
     JsonBuffer.From(json);
 }