public void ReadAsInt32InArrayIncomplete()
    {
      string schemaJson = @"{
  ""type"":""array"",
  ""items"":{
    ""type"":""integer""
  },
  ""maxItems"":1
}";

      string json = "[1,2";

      Json.Schema.ValidationEventArgs validationEventArgs = null;

      JsonValidatingReader reader = new JsonValidatingReader(new JsonTextReader(new StringReader(json)));
      reader.ValidationEventHandler += (sender, args) => { validationEventArgs = args; };
      reader.Schema = JsonSchema.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 ReadAsInt32InArray()
    {
      string schemaJson = @"{
  ""type"":""array"",
  ""items"":{
    ""type"":""integer""
  },
  ""maxItems"":1
}";

      string json = "[1,2]";

      Json.Schema.ValidationEventArgs validationEventArgs = null;

      JsonValidatingReader reader = new JsonValidatingReader(new JsonTextReader(new StringReader(json)));
      reader.ValidationEventHandler += (sender, args) => { validationEventArgs = args; };
      reader.Schema = JsonSchema.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. Line 1, position 5.", validationEventArgs.Message);
      Assert.AreEqual("", validationEventArgs.Path);
    }
    public void ReadAsInt32()
    {
      JsonSchema s = new JsonSchemaGenerator().Generate(typeof (int));

      JsonReader reader = new JsonValidatingReader(new JsonTextReader(new StringReader(@"1")))
        {
          Schema = s
        };
      int? i = reader.ReadAsInt32();

      Assert.AreEqual(1, i);
    }
    public void ReadAsInt32Failure()
    {
      ExceptionAssert.Throws<JsonSchemaException>("Integer 5 exceeds maximum value of 2. Line 1, position 1.",
      () =>
      {
        JsonSchema s = new JsonSchemaGenerator().Generate(typeof(int));
        s.Maximum = 2;

        JsonReader reader = new JsonValidatingReader(new JsonTextReader(new StringReader(@"5")))
        {
          Schema = s
        };
        reader.ReadAsInt32();
      });
    }
    public void ReadAsInt32Failure()
    {
      JsonSchema s = new JsonSchemaGenerator().Generate(typeof (int));
      s.Maximum = 2;

      JsonReader reader = new JsonValidatingReader(new JsonTextReader(new StringReader(@"5")))
        {
          Schema = s
        };
      reader.ReadAsInt32();
    }