public void SpecTest(JsonSchemaSpecTest jsonSchemaSpecTest) { JsonSchema s = JsonSchema.Read(jsonSchemaSpecTest.Schema.CreateReader()); IList<string> errorMessages; bool v = jsonSchemaSpecTest.Data.IsValid(s, out errorMessages); errorMessages = errorMessages ?? new List<string>(); Assert.AreEqual(jsonSchemaSpecTest.IsValid, v, jsonSchemaSpecTest.TestCaseDescription + " - " + jsonSchemaSpecTest.TestDescription + " - errors: " + string.Join(", ", errorMessages)); }
public void SpecTest(JsonSchemaSpecTest jsonSchemaSpecTest) { JsonSchema s = JsonSchema.Read(jsonSchemaSpecTest.Schema.CreateReader()); IList<string> e; bool v = jsonSchemaSpecTest.Data.IsValid(s, out e); string[] errorMessages = ((e != null) ? e.ToArray() : null) ?? new string[0]; Assert.AreEqual(jsonSchemaSpecTest.IsValid, v, jsonSchemaSpecTest.TestCaseDescription + " - " + jsonSchemaSpecTest.TestDescription + " - errors: " + string.Join(", ", errorMessages)); }
public void SpecTest(JsonSchemaSpecTest jsonSchemaSpecTest) { JsonSchema s = JsonSchema.Read(jsonSchemaSpecTest.Schema.CreateReader()); IList <string> e; bool v = jsonSchemaSpecTest.Data.IsValid(s, out e); string[] errorMessages = ((e != null) ? e.ToArray() : null) ?? new string[0]; Assert.AreEqual(jsonSchemaSpecTest.IsValid, v, jsonSchemaSpecTest.TestCaseDescription + " - " + jsonSchemaSpecTest.TestDescription + " - errors: " + string.Join(", ", errorMessages)); }
public static IList <object[]> GetSpecTestDetails() { IList <JsonSchemaSpecTest> specTests = new List <JsonSchemaSpecTest>(); // get test files location relative to the test project dll string baseTestPath = ResolvePath(Path.Combine("Schema", "Specs")); string[] testFiles = Directory.GetFiles( baseTestPath, "*.json", SearchOption.AllDirectories ); // read through each of the *.json test files and extract the test details foreach (string testFile in testFiles) { string testJson = System.IO.File.ReadAllText(testFile); JArray a = JArray.Parse(testJson); foreach (JObject testCase in a) { foreach (JObject test in testCase["tests"]) { JsonSchemaSpecTest jsonSchemaSpecTest = new JsonSchemaSpecTest(); jsonSchemaSpecTest.FileName = Path.GetFileName(testFile); jsonSchemaSpecTest.TestCaseDescription = (string)testCase["description"]; jsonSchemaSpecTest.Schema = (JObject)testCase["schema"]; jsonSchemaSpecTest.TestDescription = (string)test["description"]; jsonSchemaSpecTest.Data = test["data"]; jsonSchemaSpecTest.IsValid = (bool)test["valid"]; jsonSchemaSpecTest.TestNumber = specTests.Count + 1; specTests.Add(jsonSchemaSpecTest); } } } specTests = specTests .Where( s => s.FileName != "dependencies.json" && s.TestCaseDescription != "multiple disallow subschema" && s.TestCaseDescription != "types from separate schemas are merged" && s.TestCaseDescription != "when types includes a schema it should fully validate the schema" && s.TestCaseDescription != "types can include schemas" ) .ToList(); return(specTests.Select(s => new object[] { s }).ToList()); }
public void SpecTest(JsonSchemaSpecTest jsonSchemaSpecTest) { JsonSchema s = JsonSchema.Read(jsonSchemaSpecTest.Schema.CreateReader()); IList <string> errorMessages; bool v = jsonSchemaSpecTest.Data.IsValid(s, out errorMessages); errorMessages = errorMessages ?? new List <string>(); Assert.AreEqual(jsonSchemaSpecTest.IsValid, v, jsonSchemaSpecTest.TestCaseDescription + " - " + jsonSchemaSpecTest.TestDescription + " - errors: " + string.Join(", ", errorMessages)); }
public void SpecTest(JsonSchemaSpecTest jsonSchemaSpecTest) { //if (jsonSchemaSpecTest.ToString() == "enum.json - simple enum validation - something else is invalid") { Console.WriteLine("Running JSON Schema test " + jsonSchemaSpecTest.TestNumber + ": " + jsonSchemaSpecTest); JsonSchema s = JsonSchema.Read(jsonSchemaSpecTest.Schema.CreateReader()); IList <string> errorMessages; bool v = jsonSchemaSpecTest.Data.IsValid(s, out errorMessages); errorMessages = errorMessages ?? new List <string>(); Assert.AreEqual(jsonSchemaSpecTest.IsValid, v, jsonSchemaSpecTest.TestCaseDescription + " - " + jsonSchemaSpecTest.TestDescription + " - errors: " + string.Join(", ", errorMessages)); } }
public void SpecTest(JsonSchemaSpecTest jsonSchemaSpecTest) { //if (jsonSchemaSpecTest.ToString() == "enum.json - simple enum validation - something else is invalid") { Console.WriteLine("Running JSON Schema test " + jsonSchemaSpecTest.TestNumber + ": " + jsonSchemaSpecTest); JsonSchema s = JsonSchema.Read(jsonSchemaSpecTest.Schema.CreateReader()); IList<string> errorMessages; bool v = jsonSchemaSpecTest.Data.IsValid(s, out errorMessages); errorMessages = errorMessages ?? new List<string>(); Assert.AreEqual(jsonSchemaSpecTest.IsValid, v, jsonSchemaSpecTest.TestCaseDescription + " - " + jsonSchemaSpecTest.TestDescription + " - errors: " + string.Join(", ", errorMessages)); } }
public IList<JsonSchemaSpecTest> GetSpecTestDetails() { IList<JsonSchemaSpecTest> specTests = new List<JsonSchemaSpecTest>(); // get test files location relative to the test project dll string baseDirectory = AppDomain.CurrentDomain.BaseDirectory; string baseTestPath = Path.Combine(baseDirectory, "Schema", "Specs"); Console.WriteLine("Loading JSON Schema tests from " + baseTestPath); string[] testFiles = Directory.GetFiles(baseTestPath, "*.json", SearchOption.AllDirectories); // read through each of the *.json test files and extract the test details foreach (string testFile in testFiles) { string testJson = System.IO.File.ReadAllText(testFile); JArray a = JArray.Parse(testJson); foreach (JObject testCase in a) { foreach (JObject test in testCase["tests"]) { JsonSchemaSpecTest jsonSchemaSpecTest = new JsonSchemaSpecTest(); jsonSchemaSpecTest.FileName = Path.GetFileName(testFile); jsonSchemaSpecTest.TestCaseDescription = (string) testCase["description"]; jsonSchemaSpecTest.Schema = (JObject) testCase["schema"]; jsonSchemaSpecTest.TestDescription = (string) test["description"]; jsonSchemaSpecTest.Data = test["data"]; jsonSchemaSpecTest.IsValid = (bool) test["valid"]; jsonSchemaSpecTest.TestNumber = specTests.Count + 1; specTests.Add(jsonSchemaSpecTest); } } } specTests = specTests.Where(s => s.FileName != "dependencies.json" && s.TestCaseDescription != "multiple disallow subschema" && s.TestCaseDescription != "types from separate schemas are merged" && s.TestCaseDescription != "when types includes a schema it should fully validate the schema" && s.TestCaseDescription != "types can include schemas").ToList(); return specTests; }