public void ValidateReturnsValidOnValidPatternProperty() { var schema = new JsonSchema04 { Type = JsonSchemaType.Object, Properties = new Dictionary <string, IJsonSchema> { ["test1"] = new JsonSchema04 { Type = JsonSchemaType.String } }, AdditionalProperties = AdditionalProperties.False, PatternProperties = new Dictionary <Regex, IJsonSchema> { { new Regex("[0-9]"), new JsonSchema04 { Type = JsonSchemaType.Integer } } } }; var json = new JsonObject { { "test1", "value" }, { "test2", 2 } }; var results = schema.Validate(json); results.AssertValid(); }
public void DeserializeSchema_TypePropertyIsArray_Issue14() { JsonSchemaFactory.SetDefaultSchemaVersion <JsonSchema04>(); var text = "{\"type\":\"object\",\"properties\":{\"home\":{\"type\":[\"object\",\"null\"],\"properties\":{\"street\":{\"type\":\"string\"}}}}}"; var json = JsonValue.Parse(text); var expected = new JsonSchema04 { Type = JsonSchemaType.Object, Properties = new Dictionary <string, IJsonSchema> { ["home"] = new JsonSchema04 { Type = JsonSchemaType.Object | JsonSchemaType.Null, Properties = new Dictionary <string, IJsonSchema> { ["street"] = new JsonSchema04 { Type = JsonSchemaType.String } } } } }; var actual = JsonSchemaFactory.FromJson(json); Assert.AreEqual(expected, actual); }
public void ValidateReturnsValidOnValidAdditionalProperty() { var schema = new JsonSchema04 { Type = JsonSchemaType.Object, Properties = new Dictionary <string, IJsonSchema> { ["test1"] = new JsonSchema04 { Type = JsonSchemaType.String } }, AdditionalProperties = new AdditionalProperties { Definition = new JsonSchema04 { Type = JsonSchemaType.String } } }; var json = new JsonObject { { "test1", "value" }, { "test", "value" } }; var results = schema.Validate(json); results.AssertValid(); }
public void ValidateReturnsValidOnValidIpv6Format() { var schema = new JsonSchema04 { Type = JsonSchemaType.String, Format = StringFormat.Ipv6 }; var json = (JsonValue)"2001:0db8:85a3:0042:1000:8a2e:0370:7334"; var results = schema.Validate(json); results.AssertValid(); }
public void ValidateReturnsValidOnPatternMatch() { var schema = new JsonSchema04 { Type = JsonSchemaType.String, Pattern = "^[0-9_]+$" }; var json = (JsonValue)"81681_1868"; var results = schema.Validate(json); results.AssertValid(); }
public void ValidateReturnsErrorOnTooLong() { var schema = new JsonSchema04 { Type = JsonSchemaType.String, MaxLength = 5 }; var json = (JsonValue)"test123"; var results = schema.Validate(json); results.AssertInvalid(); }
public void Draft04_ValidateReturnsErrorOnEqualsExclusiveMinimum() { var schema = new JsonSchema04 { Type = JsonSchemaType.Integer, Minimum = 5, ExclusiveMinimum = true }; var json = (JsonValue)5; var results = schema.Validate(json); results.AssertInvalid(); }
public void ValidateReturnsErrorOnPatternNonMatch() { var schema = new JsonSchema04 { Type = JsonSchemaType.String, Pattern = "^[0-9_]+$" }; var json = (JsonValue)"test123"; var results = schema.Validate(json); results.AssertInvalid(); }
public void ValidateReturnsValidOnValidHostNameFormat() { var schema = new JsonSchema04 { Type = JsonSchemaType.String, Format = StringFormat.HostName }; var json = (JsonValue)"me.you.com"; var results = schema.Validate(json); results.AssertValid(); }
public void ValidateReturnsErrorOnInvalidUriFormat() { var schema = new JsonSchema04 { Type = JsonSchemaType.String, Format = StringFormat.Uri }; var json = (JsonValue)"test123^%"; var results = schema.Validate(json); results.AssertInvalid(); }
public void ValidateReturnsValidOnValidIpv4Format() { var schema = new JsonSchema04 { Type = JsonSchemaType.String, Format = StringFormat.Ipv4 }; var json = (JsonValue)"255.255.1.1"; var results = schema.Validate(json); results.AssertValid(); }
public void ValidateReturnsValidOnValidDateTimeFormat() { var schema = new JsonSchema04 { Type = JsonSchemaType.String, Format = StringFormat.DateTime }; var json = (JsonValue)"2016-01-25T10:32:02Z"; var results = schema.Validate(json); results.AssertValid(); }
public void ValidateReturnsValidOnValidEmailFormat2() { var schema = new JsonSchema04 { Type = JsonSchemaType.String, Format = StringFormat.Email }; var json = (JsonValue)"*****@*****.**"; var results = schema.Validate(json); results.AssertValid(); }
public void ValidateReturnsErrorOnNonString() { var schema = new JsonSchema04 { Type = JsonSchemaType.String }; var json = new JsonObject(); var results = schema.Validate(json); results.AssertInvalid(); }
public void Draft04_ValidateReturnsValidOnLessThanExclusiveMaximum() { var schema = new JsonSchema04 { Type = JsonSchemaType.Number, Maximum = 5, ExclusiveMaximum = true }; var json = (JsonValue)3; var results = schema.Validate(json); results.AssertValid(); }
public void Draft04_ValidateReturnsValidOnMoreThanExclusiveMinimum() { var schema = new JsonSchema04 { Type = JsonSchemaType.Integer, Minimum = 5, ExclusiveMinimum = true }; var json = (JsonValue)10; var results = schema.Validate(json); results.AssertValid(); }
public void ValidateReturnsValidOnLengthLessThanMaxLength() { var schema = new JsonSchema04 { Type = JsonSchemaType.String, MaxLength = 5 }; var json = (JsonValue)"test"; var results = schema.Validate(json); results.AssertValid(); }
public void ValidateReturnsValidOnValidUriFormat() { var schema = new JsonSchema04 { Type = JsonSchemaType.String, Format = StringFormat.Uri }; var json = (JsonValue)"http://en.wikipedia.org/wiki/ISO_8601"; var results = schema.Validate(json); results.AssertValid(); }
public void ValidateReturnsValidOnNotTooFewProperties() { var schema = new JsonSchema04 { Type = JsonSchemaType.Object, MinProperties = 1 }; var json = new JsonObject { { "test1", "value" }, { "test2", 2 } }; var results = schema.Validate(json); results.AssertValid(); }
public void ValidateReturnsInvalidOnTooFewProperties() { var schema = new JsonSchema04 { Type = JsonSchemaType.Object, MinProperties = 5 }; var json = new JsonObject { { "test1", "value" }, { "test2", 2 } }; var results = schema.Validate(json); Assert.AreEqual(1, results.Errors.Count()); Assert.AreEqual(false, results.Valid); }
public void ValidateReturnsValidOnOptionalPropertyMissing() { var schema = new JsonSchema04 { Type = JsonSchemaType.Object, Properties = new Dictionary <string, IJsonSchema> { ["test1"] = new JsonSchema04 { Type = JsonSchemaType.String } } }; var json = new JsonObject(); var results = schema.Validate(json); results.AssertValid(); }
public void Issue49_RequiredAndAllOfInSingleSchema() { var fileName = System.IO.Path.Combine(TestContext.CurrentContext.TestDirectory, @"Files\issue49.json").AdjustForOS(); var expected = new JsonSchema04 { Title = "JSON schema for Something", Schema = "http://json-schema.org/draft-04/schema#", Definitions = new Dictionary <string, IJsonSchema> { ["something"] = new JsonSchema04 { Type = JsonSchemaType.Object, AllOf = new[] { new JsonSchema04 { Properties = new Dictionary <string, IJsonSchema> { ["name"] = new JsonSchema04 { Type = JsonSchemaType.String } } } }, Required = new List <string> { "name" } } }, Type = JsonSchemaType.Array, Description = "An array of somethings.", Items = new JsonSchemaReference("#/definitions/something", typeof(JsonSchema04)) }; var schema = JsonSchemaRegistry.Get(fileName); Assert.AreEqual(expected, schema); var schemaJson = schema.ToJson(null); var expectedJson = expected.ToJson(null); Console.WriteLine(schemaJson); Assert.AreEqual(expectedJson, schemaJson); }
public void DeclaredTypeWithDeclaredEnum_Issue15() { JsonSchemaFactory.SetDefaultSchemaVersion <JsonSchema04>(); var text = "{\"type\":\"string\",\"enum\":[\"FeatureCollection\"]}"; var json = JsonValue.Parse(text); var expected = new JsonSchema04 { Type = JsonSchemaType.String, Enum = new List <EnumSchemaValue> { new EnumSchemaValue("FeatureCollection") } }; var actual = JsonSchemaFactory.FromJson(json); Assert.AreEqual(expected, actual); }
public void ValidateReturnsErrorOnInvalidProperty() { var schema = new JsonSchema04 { Type = JsonSchemaType.Object, Properties = new Dictionary <string, IJsonSchema> { ["test1"] = new JsonSchema04 { Type = JsonSchemaType.String } } }; var json = new JsonObject { { "test1", 1 } }; var results = schema.Validate(json); results.AssertInvalid(); }
public void ValidateReturnsErrorOnRequiredPropertyMissing() { var schema = new JsonSchema04 { Type = JsonSchemaType.Object, Properties = new Dictionary <string, IJsonSchema> { ["test1"] = new JsonSchema04 { Type = JsonSchemaType.String } }, Required = new List <string> { "test1" } }; var json = new JsonObject(); var results = schema.Validate(json); results.AssertInvalid(); }
public static IEnumerable <IJsonSchemaPropertyValidator <JsonSchema04> > Get(JsonSchema04 schema, JsonValue json) { return(_schema04Validators.Where(v => v.Applies(schema, json))); }