public async Task IsValidComplexType_ComplexType_ShouldReturnTrue(string path, string jsonPointer, string testCase) { _testOutputHelper.WriteLine($"{testCase}"); var schema = await ResourceHelpers.LoadJsonSchemaTestData(path); var normalizer = new JsonSchemaNormalizer(); var normalizedSchema = normalizer.Normalize(schema); var json = JsonSerializer.Serialize(normalizedSchema, new JsonSerializerOptions { WriteIndented = true }); var analyzer = new SeresJsonSchemaAnalyzer(); var results = analyzer.AnalyzeSchema(schema, new Uri("dummy", UriKind.Relative)); results.GetCompatibleTypes(JsonPointer.Parse(jsonPointer)).Should().Contain(CompatibleXsdType.ComplexType); }
public async Task Normalize_WithNormalization_ShouldRemoveSingleAllOfs(string jsonSchemaTestdata, string expectedNormalizedSchemaTestdata) { JsonSchemaKeywords.RegisterXsdKeywords(); var jsonSchema = await ResourceHelpers.LoadJsonSchemaTestData(jsonSchemaTestdata); var jsonSchemaNormalizer = new JsonSchemaNormalizer(); var normalizedJsonSchema = jsonSchemaNormalizer.Normalize(jsonSchema); var normalizedJsonSchemaText = JsonSerializer.Serialize(normalizedJsonSchema); var expectedNormalizedJsonSchema = await ResourceHelpers.LoadJsonSchemaTestData(expectedNormalizedSchemaTestdata); var expectedNormalizedJsonSchemaText = JsonSerializer.Serialize(expectedNormalizedJsonSchema); var json = JsonSerializer.Serialize(normalizedJsonSchema, new JsonSerializerOptions { WriteIndented = true }); normalizedJsonSchemaText.Should().BeEquivalentTo(expectedNormalizedJsonSchemaText); }
public async Task Normalize_NoNormalization_ShouldEqualSourceSchema(string jsonSchemaTestdata) { JsonSchemaKeywords.RegisterXsdKeywords(); var jsonSchema = await ResourceHelpers.LoadJsonSchemaTestData(jsonSchemaTestdata); var jsonSchemaText = JsonSerializer.Serialize(jsonSchema, new JsonSerializerOptions() { Encoder = JavaScriptEncoder.Create(UnicodeRanges.BasicLatin, UnicodeRanges.Latin1Supplement) }); var jsonSchemaNormalizer = new JsonSchemaNormalizer() { PerformNormalization = false }; var normalizedJsonSchema = jsonSchemaNormalizer.Normalize(jsonSchema); var normalizedJsonSchemaText = JsonSerializer.Serialize(normalizedJsonSchema, new JsonSerializerOptions() { Encoder = JavaScriptEncoder.Create(UnicodeRanges.BasicLatin, UnicodeRanges.Latin1Supplement) }); normalizedJsonSchemaText.Should().BeEquivalentTo(jsonSchemaText); }