public void ReadAsInt32InArrayIncomplete() { string schemaJson = @"{ ""type"":""array"", ""items"":{ ""type"":""integer"" }, ""maxItems"":1 }"; string json = "[1,2"; SchemaValidationEventArgs validationEventArgs = null; JSchemaValidatingReader reader = new JSchemaValidatingReader(new JsonTextReader(new StringReader(json))); reader.ValidationEventHandler += (sender, args) => { validationEventArgs = args; }; reader.Schema = JSchema.Parse(schemaJson); reader.Read(); Assert.AreEqual(JsonToken.StartArray, reader.TokenType); reader.ReadAsInt32(); Assert.AreEqual(JsonToken.Integer, reader.TokenType); Assert.AreEqual(null, validationEventArgs); reader.ReadAsInt32(); Assert.AreEqual(JsonToken.Integer, reader.TokenType); Assert.AreEqual(null, validationEventArgs); reader.ReadAsInt32(); Assert.AreEqual(JsonToken.None, reader.TokenType); Assert.AreEqual(null, validationEventArgs); }
public void ReadAsInt32Failure() { ExceptionAssert.Throws<JSchemaException>(() => { JSchema s = new JSchemaGenerator().Generate(typeof(int)); s.Maximum = 2; JsonReader reader = new JSchemaValidatingReader(new JsonTextReader(new StringReader(@"5"))) { Schema = s }; reader.ReadAsInt32(); }, "Integer 5 exceeds maximum value of 2. Path '', line 1, position 1."); }
public void ReadAsInt32InArray() { string schemaJson = @"{ ""type"":""array"", ""items"":{ ""type"":""integer"" }, ""maxItems"":1 }"; string json = "[1,2]"; SchemaValidationEventArgs validationEventArgs = null; JSchemaValidatingReader reader = new JSchemaValidatingReader(new JsonTextReader(new StringReader(json))); reader.ValidationEventHandler += (sender, args) => { validationEventArgs = args; }; reader.Schema = JSchema.Parse(schemaJson); reader.Read(); Assert.AreEqual(JsonToken.StartArray, reader.TokenType); reader.ReadAsInt32(); Assert.AreEqual(JsonToken.Integer, reader.TokenType); Assert.AreEqual(null, validationEventArgs); reader.ReadAsInt32(); Assert.AreEqual(JsonToken.Integer, reader.TokenType); Assert.AreEqual(null, validationEventArgs); reader.ReadAsInt32(); Assert.AreEqual(JsonToken.EndArray, reader.TokenType); Assert.AreEqual("Array item count 2 exceeds maximum count of 1. Path '', line 1, position 5.", validationEventArgs.Message); Assert.AreEqual(2, validationEventArgs.ValidationError.Value); Assert.AreEqual("", validationEventArgs.Path); }
public void ReadAsInt32() { JSchema s = new JSchemaGenerator().Generate(typeof(int)); JsonReader reader = new JSchemaValidatingReader(new JsonTextReader(new StringReader(@"1"))) { Schema = s }; int? i = reader.ReadAsInt32(); Assert.AreEqual(1, i); }