package com.networknt.schema; import java.io.InputStream; import java.util.Set; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; public class Issue383Test { protected JsonSchema getJsonSchemaFromStreamContentV7(InputStream schemaContent) { JsonSchemaFactory factory = JsonSchemaFactory.getInstance(SpecVersion.VersionFlag.V7); return factory.getSchema(schemaContent); } protected JsonNode getJsonNodeFromStreamContent(InputStream content) throws Exception { ObjectMapper mapper = new ObjectMapper(); JsonNode node = mapper.readTree(content); return node; } @Test public void nestedOneOfsShouldStillMatchV7() throws Exception { String schemaPath = "/schema/issue383-v7.json"; String dataPath = "/data/issue383.json"; InputStream schemaInputStream = getClass().getResourceAsStream(schemaPath); JsonSchema schema = getJsonSchemaFromStreamContentV7(schemaInputStream); InputStream dataInputStream = getClass().getResourceAsStream(dataPath); JsonNode node = getJsonNodeFromStreamContent(dataInputStream); Set errors = schema.validate(node); Assertions.assertEquals(0, errors.size()); } }