Ejemplo n.º 1
0
        public void 文字列の後ろにその他の値がある場合は例外2()
        {
            var target  = @"'abcde'abde";
            var expects = new ReaderExpect[] { };

            ReaderUtil.Check(target, expects);
        }
Ejemplo n.º 2
0
        public void オブジェクトの末尾カンマは駄目()
        {
            var target  = @"{""ABC"": 123, ""DEF"" : 456, } ";
            var expects = new[] {
                new ReaderExpect()
                {
                    Token = JsonToken.StartObject, IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Key, Type = ValueType.String, Quote = QuoteType.Double, Value = "ABC", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Value, Type = ValueType.Number, Value = "123", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Key, Type = ValueType.String, Quote = QuoteType.Double, Value = "DEF", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Value, Type = ValueType.Number, Value = "456", IsStrict = true
                },
            };

            ReaderUtil.Check(target, expects, Relaxations.AllowAll ^ Relaxations.AllowLastComma);
        }
Ejemplo n.º 3
0
        public void 複数のキーバリュー()
        {
            var target  = @"{""aaa"": ""bbb"", ""ccc"": 123}";
            var expects = new[] {
                new ReaderExpect()
                {
                    Token = JsonToken.StartObject, IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Key, Type = ValueType.String, Quote = QuoteType.Double, Value = "aaa", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Value, Type = ValueType.String, Quote = QuoteType.Double, Value = "bbb", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Key, Type = ValueType.String, Quote = QuoteType.Double, Value = "ccc", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Value, Type = ValueType.Number, Value = "123", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.EndObject, IsStrict = true
                },
            };

            ReaderUtil.Check(target, expects);
        }
Ejemplo n.º 4
0
        public void オブジェクトの末尾カンマ()
        {
            var target  = @"{""ABC"": 123, ""DEF"" : 456 , } ";
            var expects = new[] {
                new ReaderExpect()
                {
                    Token = JsonToken.StartObject, IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Key, Type = ValueType.String, Quote = QuoteType.Double, Value = "ABC", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Value, Type = ValueType.Number, Value = "123", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Key, Type = ValueType.String, Quote = QuoteType.Double, Value = "DEF", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Value, Type = ValueType.Number, Value = "456", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.EndObject, HasLastComma = true, IsStrict = false
                }
            };

            ReaderUtil.Check(target, expects);
        }
Ejemplo n.º 5
0
        public void 文字列中に改行がある場合は例外3()
        {
            var target  = "\"abc\r\nabc\"";
            var expects = new ReaderExpect[] { };

            ReaderUtil.Check(target, expects);
        }
Ejemplo n.º 6
0
        public void 小数の読み込み()
        {
            var target  = @"12345.1234";
            var expects = new[] {
                new ReaderExpect()
                {
                    Quote = QuoteType.None, Token = JsonToken.Value, Type = ValueType.Number, Value = target, IsStrict = true
                }
            };

            ReaderUtil.Check(target, expects);

            target  = @"0.1234";
            expects = new[] {
                new ReaderExpect()
                {
                    Quote = QuoteType.None, Token = JsonToken.Value, Type = ValueType.Number, Value = target, IsStrict = true
                }
            };

            target  = @".1234";
            expects = new[] {
                new ReaderExpect()
                {
                    Quote = QuoteType.None, Token = JsonToken.Value, Type = ValueType.Number, Value = target, IsStrict = true
                }
            };

            ReaderUtil.Check(target, expects);
        }
Ejemplo n.º 7
0
        public void Infinityは駄目2()
        {
            var target  = "-Infinity";
            var expects = new ReaderExpect[] {
            };

            ReaderUtil.Check(target, expects, Relaxations.AllowAll ^ Relaxations.AllowInfinity);
        }
Ejemplo n.º 8
0
        public void 数値の0左埋めは駄目1_1()
        {
            var target  = "0000";
            var expects = new ReaderExpect[] {
            };

            ReaderUtil.Check(target, expects, Relaxations.AllowAll ^ Relaxations.AllowLeftZeroPaddingNumber);
        }
Ejemplo n.º 9
0
        public void 単一引用符の文字列はだめ()
        {
            var target  = "'abcde'";
            var expects = new ReaderExpect[] {
            };

            ReaderUtil.Check(target, expects, Relaxations.AllowAll ^ Relaxations.AllowSingleQuoteString);
        }
Ejemplo n.º 10
0
        public void undefinedは駄目()
        {
            var target  = "undefined";
            var expects = new ReaderExpect[] {
            };

            ReaderUtil.Check(target, expects, Relaxations.AllowAll ^ Relaxations.AllowUndefined);
        }
Ejemplo n.º 11
0
        public void 数値の16進数は駄目1()
        {
            var target  = "0xFF";
            var expects = new ReaderExpect[] {
            };

            ReaderUtil.Check(target, expects, Relaxations.AllowAll ^ Relaxations.AllowHexNumber);
        }
Ejemplo n.º 12
0
        public void NaNは駄目()
        {
            var target  = "NaN";
            var expects = new ReaderExpect[] {
            };

            ReaderUtil.Check(target, expects, Relaxations.AllowAll ^ Relaxations.AllowNaN);
        }
Ejemplo n.º 13
0
        public void  明な型の値は駄目()
        {
            var target  = "+0iajoljc";
            var expects = new ReaderExpect[] {
            };

            ReaderUtil.Check(target, expects, Relaxations.AllowAll ^ Relaxations.AllowUnknownType);
        }
Ejemplo n.º 14
0
        public void バリューにオブジェクト()
        {
            var target  = @"{ ""aaa"": {""bbb"": ""ccc""}, ""ddd"": {""eee"": 10 } } ";
            var expects = new[] {
                new ReaderExpect()
                {
                    Token = JsonToken.StartObject, IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Key, Type = ValueType.String, Quote = QuoteType.Double, Value = "aaa", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.StartObject, IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Key, Type = ValueType.String, Quote = QuoteType.Double, Value = "bbb", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Value, Type = ValueType.String, Quote = QuoteType.Double, Value = "ccc", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.EndObject, IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Key, Type = ValueType.String, Quote = QuoteType.Double, Value = "ddd", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.StartObject, IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Key, Type = ValueType.String, Quote = QuoteType.Double, Value = "eee", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Value, Type = ValueType.Number, Value = "10", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.EndObject, IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.EndObject, IsStrict = true
                },
            };

            ReaderUtil.Check(target, expects);
        }
Ejemplo n.º 15
0
        public void 配列が入った配列()
        {
            var target  = @"[""ABCD"", [123, 0.0], true,[0x123,  null]] ";
            var expects = new[] {
                new ReaderExpect()
                {
                    Token = JsonToken.StartArray, IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Value, Type = ValueType.String, Quote = QuoteType.Double, Value = "ABCD", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.StartArray, IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Value, Type = ValueType.Number, Value = "123", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Value, Type = ValueType.Number, Value = "0.0", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.EndArray, IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Value, Type = ValueType.Boolean, Value = "true", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.StartArray, IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Value, Type = ValueType.Number, Value = "0x123", IsHexNumber = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Value, Type = ValueType.Null, Value = "null", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.EndArray, IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.EndArray, IsStrict = true
                }
            };

            ReaderUtil.Check(target, expects);
        }
Ejemplo n.º 16
0
        public void 値にオブジェクト()
        {
            var target  = @"[""ABCD"", {123: 0.0, true:[0x123,  null]}] ";
            var expects = new[] {
                new ReaderExpect()
                {
                    Token = JsonToken.StartArray, IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Value, Type = ValueType.String, Quote = QuoteType.Double, Value = "ABCD", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.StartObject, IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Key, Type = ValueType.Number, Value = "123"
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Value, Type = ValueType.Number, Value = "0.0", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Key, Type = ValueType.Boolean, Value = "true"
                },
                new ReaderExpect()
                {
                    Token = JsonToken.StartArray, IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Value, Type = ValueType.Number, Value = "0x123", IsHexNumber = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Value, Type = ValueType.Null, Value = "null", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.EndArray, IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.EndObject, IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.EndArray, IsStrict = true
                }
            };

            ReaderUtil.Check(target, expects);
        }
Ejemplo n.º 17
0
        public void Infinityの読み込み()
        {
            var target  = @"Infinity";
            var expects = new[] {
                new ReaderExpect()
                {
                    Quote = QuoteType.None, Token = JsonToken.Value, Type = ValueType.Infinitiy, Value = target
                }
            };

            ReaderUtil.Check(target, expects);
        }
Ejemplo n.º 18
0
        public void NaNの読み込み()
        {
            var target  = @"NaN";
            var expects = new[] {
                new ReaderExpect()
                {
                    Quote = QuoteType.None, Token = JsonToken.Value, Type = ValueType.NaN, Value = target
                }
            };

            ReaderUtil.Check(target, expects);
        }
Ejemplo n.º 19
0
        public void nullの読み込み()
        {
            var target  = @"null";
            var expects = new[] {
                new ReaderExpect()
                {
                    Quote = QuoteType.None, Token = JsonToken.Value, Type = ValueType.Null, Value = target, IsStrict = true
                }
            };

            ReaderUtil.Check(target, expects);
        }
Ejemplo n.º 20
0
        public void ゼロが連続する指数はnumberではない()
        {
            var target  = @"00e-0";
            var expects = new[] {
                new ReaderExpect()
                {
                    Quote = QuoteType.None, Token = JsonToken.Value, Type = ValueType.Unknown, Value = target
                }
            };

            ReaderUtil.Check(target, expects);
        }
Ejemplo n.º 21
0
        public void 数値の8進数は駄目2()
        {
            var target  = "{013:'HOGE'}";
            var expects = new ReaderExpect[] {
                new ReaderExpect()
                {
                    Token = JsonToken.StartObject, IsStrict = true
                },
            };

            ReaderUtil.Check(target, expects, Relaxations.AllowAll ^ Relaxations.AllowOctalNumber);
        }
Ejemplo n.º 22
0
        public void キーがないはエラー()
        {
            var target  = @"{:""bbb""}";
            var expects = new[] {
                new ReaderExpect()
                {
                    Token = JsonToken.StartObject, IsStrict = true
                },
            };

            ReaderUtil.Check(target, expects);
        }
Ejemplo n.º 23
0
        public void 数値の0左埋めは駄目2()
        {
            var target  = "{009:'HOGE'}";
            var expects = new ReaderExpect[] {
                new ReaderExpect()
                {
                    Token = JsonToken.StartObject, IsStrict = true
                },
            };

            ReaderUtil.Check(target, expects, Relaxations.AllowAll ^ Relaxations.AllowLeftZeroPaddingNumber);
        }
Ejemplo n.º 24
0
        public void undefinedの読み込み()
        {
            var target  = @"undefined";
            var expects = new[] {
                new ReaderExpect()
                {
                    Quote = QuoteType.None, Token = JsonToken.Value, Type = ValueType.Undefined, Value = target
                }
            };

            ReaderUtil.Check(target, expects);
        }
Ejemplo n.º 25
0
        public void ゼロの指数は可能()
        {
            var target  = @"0e-0";
            var expects = new[] {
                new ReaderExpect()
                {
                    Quote = QuoteType.None, Token = JsonToken.Value, Type = ValueType.Number, Value = target, IsStrict = true
                }
            };

            ReaderUtil.Check(target, expects);
        }
Ejemplo n.º 26
0
        public void 文字列以外のプロパティ名は駄目()
        {
            var target  = "{12345:'HOGE'}";
            var expects = new ReaderExpect[] {
                new ReaderExpect()
                {
                    Token = JsonToken.StartObject, IsStrict = true
                },
            };

            ReaderUtil.Check(target, expects, Relaxations.AllowAll ^ Relaxations.AllowNonStringKeyName);
        }
Ejemplo n.º 27
0
        public void 値とプロパティの区切りの間違いもエラー_プロパティで終端の場合()
        {
            var target  = @"{ccc";
            var expects = new[] {
                new ReaderExpect()
                {
                    Token = JsonToken.StartObject, IsStrict = true
                },
            };

            ReaderUtil.Check(target, expects);
        }
Ejemplo n.º 28
0
        public void ゼロのみが連続しても整数()
        {
            var target  = @"00000";
            var expects = new[] {
                new ReaderExpect()
                {
                    Quote = QuoteType.None, Token = JsonToken.Value, Type = ValueType.Number, Value = target
                }
            };

            ReaderUtil.Check(target, expects);
        }
Ejemplo n.º 29
0
        public void キーに文字以外_正しくは値としてみなせるもの()
        {
            var target  = @"{aaa:""bbb"",123:345,0.23e-5:10,true:false}";
            var expects = new[] {
                new ReaderExpect()
                {
                    Token = JsonToken.StartObject, IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Key, Type = ValueType.Unknown, Value = "aaa"
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Value, Type = ValueType.String, Quote = QuoteType.Double, Value = "bbb", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Key, Type = ValueType.Number, Value = "123"
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Value, Type = ValueType.Number, Value = "345", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Key, Type = ValueType.Number, Value = "0.23e-5"
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Value, Type = ValueType.Number, Value = "10", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Key, Type = ValueType.Boolean, Value = "true"
                },
                new ReaderExpect()
                {
                    Token = JsonToken.Value, Type = ValueType.Boolean, Value = "false", IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.EndObject, IsStrict = true
                }
            };

            ReaderUtil.Check(target, expects);
        }
Ejemplo n.º 30
0
        public void 空の配列()
        {
            var target  = @"[]";
            var expects = new[] {
                new ReaderExpect()
                {
                    Token = JsonToken.StartArray, IsStrict = true
                },
                new ReaderExpect()
                {
                    Token = JsonToken.EndArray, IsStrict = true
                },
            };

            ReaderUtil.Check(target, expects);
        }