Exemple #1
0
        public void ObjectTest()
        {
            {
                var json = "{}";
                var node = JsonParser.Parse(json);
                Assert.AreEqual(0, node.Value.Bytes.Offset);

                Assert.AreEqual(2, node.Value.Bytes.Count);

                Assert.True(node.IsMap());
                Assert.AreEqual(0, node.ObjectItems().Count());
            }

            {
                var json = "{\"key\":\"value\"}";
                var node = JsonParser.Parse(json);
                Assert.AreEqual(0, node.Value.Bytes.Offset);
                Assert.AreEqual(json.Length, node.Value.Bytes.Count);
                Assert.True(node.IsMap());

                var it = node.ObjectItems().GetEnumerator();

                Assert.IsTrue(it.MoveNext());
                Assert.AreEqual("key", it.Current.Key.GetString());
                Assert.AreEqual("value", it.Current.Value.GetString());

                Assert.IsFalse(it.MoveNext());
            }

            {
                var json = "{\"key\":\"value\"}";
                var node = JsonParser.Parse(json);
                Assert.AreEqual(0, node.Value.Bytes.Offset);
                Assert.AreEqual(json.Length, node.Value.Bytes.Count);
                Assert.True(node.IsMap());

                var it = node.ObjectItems().GetEnumerator();

                Assert.IsTrue(it.MoveNext());
                Assert.AreEqual("key", it.Current.Key.GetString());
                Assert.AreEqual("value", it.Current.Value.GetString());

                Assert.IsFalse(it.MoveNext());
            }
        }
Exemple #2
0
 public void BooleanTest()
 {
     {
         var node = JsonParser.Parse("true");
         Assert.AreEqual(0, node.Value.Bytes.Offset);
         Assert.AreEqual(4, node.Value.Bytes.Count);
         Assert.True(node.IsBoolean());
         Assert.AreEqual(true, node.GetBoolean());
         Assert.Catch(typeof(FormatException), () => node.GetDouble());
     }
     {
         var node = JsonParser.Parse(" false ");
         Assert.AreEqual(1, node.Value.Bytes.Offset);
         Assert.AreEqual(5, node.Value.Bytes.Count);
         Assert.True(node.IsBoolean());
         Assert.AreEqual(false, node.GetBoolean());
     }
 }
        public void KeyValue()
        {
            var p = new Point
            {
                X      = 1,
                Vector = new float[] { 1, 2, 3 }
            };

            var f = new JsonFormatter();

            f.BeginMap();
            f.KeyValue(() => p.Vector);
            f.EndMap();

            var json = JsonParser.Parse(new Utf8String(f.GetStoreBytes()));

            Assert.AreEqual(1, json.GetObjectCount());
            Assert.AreEqual(1, json["Vector"][0].GetInt32());
        }
Exemple #4
0
        public void CreateFromClass()
        {
            var s = JsonSchema.FromType <Person>();

            Assert.AreEqual("Person", s.Title);

            var v = s.Validator as JsonObjectValidator;

            Assert.AreEqual("Age in years", v.Properties["age"].Description);
            Assert.AreEqual(new[] { "firstName", "lastName" }, v.Required);

            var f = new JsonFormatter(2);

            s.ToJson(f);
            var json = f.ToString();

            var parsed = JsonParser.Parse(json);

            Assert.AreEqual(0, parsed["properties"]["age"]["minimum"].GetInt32());
        }
Exemple #5
0
        public void NestedObjectTest()
        {
            {
                var json = "{\"key\":{ \"nestedKey\": \"nestedValue\" }, \"key2\": { \"nestedKey2\": \"nestedValue2\" } }";
                var node = JsonParser.Parse(json);
                Assert.True(node.IsMap());

                {
                    var it = node.ObjectItems().GetEnumerator();

                    Assert.IsTrue(it.MoveNext());
                    Assert.AreEqual("key", it.Current.Key.GetString());
                    Assert.True(it.Current.Value.IsMap());

                    Assert.IsTrue(it.MoveNext());
                    Assert.AreEqual("key2", it.Current.Key.GetString());
                    Assert.True(it.Current.Value.IsMap());

                    Assert.IsFalse(it.MoveNext());
                }

                var nested = node["key2"];

                {
                    var it = nested.ObjectItems().GetEnumerator();

                    Assert.IsTrue(it.MoveNext());
                    Assert.AreEqual("nestedKey2", it.Current.Key.GetString());
                    Assert.AreEqual("nestedValue2", it.Current.Value.GetString());

                    Assert.IsFalse(it.MoveNext());
                }

                Assert.AreEqual("nestedValue2", node["key2"]["nestedKey2"].GetString());
            }
        }
Exemple #6
0
        public void StringTest()
        {
            {
                var value  = "hoge";
                var quoted = "\"hoge\"";
                Assert.AreEqual(quoted, JsonString.Quote(value));
                var node = JsonParser.Parse(quoted);
                Assert.AreEqual(0, node.Value.Bytes.Offset);
                Assert.AreEqual(quoted.Length, node.Value.Bytes.Count);
                Assert.True(node.IsString());
                Assert.AreEqual("hoge", node.GetString());
            }

            {
                var value  = "fuga\n  hoge";
                var quoted = "\"fuga\\n  hoge\"";
                Assert.AreEqual(quoted, JsonString.Quote(value));
                var node = JsonParser.Parse(quoted);
                Assert.AreEqual(0, node.Value.Bytes.Offset);
                Assert.AreEqual(quoted.Length, node.Value.Bytes.Count);
                Assert.True(node.IsString());
                Assert.AreEqual(value, node.GetString());
            }
        }
Exemple #7
0
 public void Utf8Test()
 {
     JsonParser.Parse("\"5\"");
 }
Exemple #8
0
        public void ParseTest()
        {
            var json = "{";

            Assert.Catch(typeof(ParserException), () => JsonParser.Parse(json));
        }
Exemple #9
0
 public static ListTreeNode <JsonValue> ParseAsJson(this string json)
 {
     return(JsonParser.Parse(json));
 }
Exemple #10
0
 public static ListTreeNode <JsonValue> ParseAsJson(this ArraySegment <byte> bytes)
 {
     return(JsonParser.Parse(new Utf8String(bytes)));
 }
Exemple #11
0
 public static ListTreeNode <JsonValue> ParseAsJson(this byte[] bytes)
 {
     return(JsonParser.Parse(new Utf8String(bytes)));
 }