public void SimpleTypeValidationValid() { var schema = SchemaBuilderTests.SimpleSchemaExample(); var newObj = new { stringProp = "seattle, wa", urlProp = "http://example.org", numberProp = 1234567901, dateProp = DateTime.UtcNow, floatProp = 123123.1231231231 }; string json = JsonConvert.SerializeObject(newObj, Settings); var issues = new IssueLogger(); Assert.IsTrue(schema.ValidateJson(new JsonExample(json), issues, null, null)); Assert.AreEqual(0, issues.Issues.Count()); }
public void SimpleTypeValidationMissingProperty() { var schema = SchemaBuilderTests.SimpleSchemaExample(); var newObj = new { stringProp = "seattle, wa", numberProp = 1234567901, dateProp = DateTime.UtcNow, floatProp = 123123.1231231231 }; string json = JsonConvert.SerializeObject(newObj, Settings); var issues = new IssueLogger(); Assert.IsFalse(schema.ValidateJson(new JsonExample(json), issues, null, null)); Assert.AreEqual(1, issues.Issues.Count()); Assert.AreEqual(ValidationErrorCode.RequiredPropertiesMissing, issues.Issues.First().Code); }
public void SimpleTypeValidationWrongTypeArray() { var schema = SchemaBuilderTests.SimpleSchemaExample(); var newObj = new { stringProp = new string[] { "one", "two", "three" }, urlProp = "http://example.org", numberProp = 1234567901, dateProp = DateTime.UtcNow, floatProp = 123123.1231231231 }; string json = JsonConvert.SerializeObject(newObj, Settings); var issues = new IssueLogger(); Assert.IsFalse(schema.ValidateJson(new JsonExample(json), issues, null, null)); Assert.AreEqual(1, issues.Issues.Count()); Assert.AreEqual(ValidationErrorCode.ExpectedNonArrayValue, issues.Issues.First().Code); }
public void SimpleTypeValidationExtraProperty() { var schema = SchemaBuilderTests.SimpleSchemaExample(); var newObj = new { stringProp = "seattle, wa", foobar = "another value", urlProp = "http://example.org", numberProp = 1234567901, dateProp = DateTime.UtcNow, floatProp = 123123.1231231231 }; string json = JsonConvert.SerializeObject(newObj, Settings); var issues = new IssueLogger(); Assert.IsFalse(schema.ValidateJson(new JsonExample(json), issues, null, null)); Assert.AreEqual(1, issues.Issues.Count()); Assert.AreEqual(ValidationErrorCode.AdditionalPropertyDetected, issues.Issues.First().Code); }
public void SimpleTypeValidationWrongPropertyType() { var schema = SchemaBuilderTests.SimpleSchemaExample(); // There are two errors here, the first is that stringProp is a number, and the // the second is that numberProp is a string. API Doctor needs to catch both. var newObj = new { stringProp = 1231234, urlProp = "http://example.org", numberProp = "1234567901", dateProp = DateTime.UtcNow, floatProp = 123123.1231231231 }; string json = JsonConvert.SerializeObject(newObj, Settings); var issues = new IssueLogger(); Assert.IsFalse(schema.ValidateJson(new JsonExample(json), issues, null, null)); Assert.IsTrue(issues.Issues.All(error => error.Code == ValidationErrorCode.ExpectedTypeDifferent)); Assert.AreEqual(2, issues.Issues.Count(), "Expected 2 errors in the response"); }