public void 文字列の後ろにその他の値がある場合は例外2() { var target = @"'abcde'abde"; var expects = new ReaderExpect[] { }; ReaderUtil.Check(target, expects); }
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); }
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); }
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); }
public void 文字列中に改行がある場合は例外3() { var target = "\"abc\r\nabc\""; var expects = new ReaderExpect[] { }; ReaderUtil.Check(target, expects); }
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); }
public void Infinityは駄目2() { var target = "-Infinity"; var expects = new ReaderExpect[] { }; ReaderUtil.Check(target, expects, Relaxations.AllowAll ^ Relaxations.AllowInfinity); }
public void 数値の0左埋めは駄目1_1() { var target = "0000"; var expects = new ReaderExpect[] { }; ReaderUtil.Check(target, expects, Relaxations.AllowAll ^ Relaxations.AllowLeftZeroPaddingNumber); }
public void 単一引用符の文字列はだめ() { var target = "'abcde'"; var expects = new ReaderExpect[] { }; ReaderUtil.Check(target, expects, Relaxations.AllowAll ^ Relaxations.AllowSingleQuoteString); }
public void undefinedは駄目() { var target = "undefined"; var expects = new ReaderExpect[] { }; ReaderUtil.Check(target, expects, Relaxations.AllowAll ^ Relaxations.AllowUndefined); }
public void 数値の16進数は駄目1() { var target = "0xFF"; var expects = new ReaderExpect[] { }; ReaderUtil.Check(target, expects, Relaxations.AllowAll ^ Relaxations.AllowHexNumber); }
public void NaNは駄目() { var target = "NaN"; var expects = new ReaderExpect[] { }; ReaderUtil.Check(target, expects, Relaxations.AllowAll ^ Relaxations.AllowNaN); }
public void 明な型の値は駄目() { var target = "+0iajoljc"; var expects = new ReaderExpect[] { }; ReaderUtil.Check(target, expects, Relaxations.AllowAll ^ Relaxations.AllowUnknownType); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
public void キーがないはエラー() { var target = @"{:""bbb""}"; var expects = new[] { new ReaderExpect() { Token = JsonToken.StartObject, IsStrict = true }, }; ReaderUtil.Check(target, expects); }
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); }
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); }
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); }
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); }
public void 値とプロパティの区切りの間違いもエラー_プロパティで終端の場合() { var target = @"{ccc"; var expects = new[] { new ReaderExpect() { Token = JsonToken.StartObject, IsStrict = true }, }; ReaderUtil.Check(target, expects); }
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); }
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); }
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); }