• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package com.networknt.schema;
2 
3 import com.fasterxml.jackson.databind.ObjectMapper;
4 import org.junit.jupiter.api.Assertions;
5 import org.junit.jupiter.api.Test;
6 
7 public class Issue928Test {
8     private final ObjectMapper mapper = new ObjectMapper();
9 
factoryFor(SpecVersion.VersionFlag version)10     private JsonSchemaFactory factoryFor(SpecVersion.VersionFlag version) {
11         return JsonSchemaFactory
12                 .builder(JsonSchemaFactory.getInstance(version))
13                 .jsonMapper(mapper)
14                 .schemaMappers(schemaMappers -> schemaMappers.mapPrefix("https://example.org", "classpath:"))
15                 .build();
16     }
17 
18     @Test
test_07()19     public void test_07() {
20         test_spec(SpecVersion.VersionFlag.V7);
21     }
22 
23     @Test
test_201909()24     public void test_201909() {
25         test_spec(SpecVersion.VersionFlag.V201909);
26     }
27 
28     @Test
test_202012()29     public void test_202012() {
30         test_spec(SpecVersion.VersionFlag.V202012);
31     }
32 
test_spec(SpecVersion.VersionFlag specVersion)33     public void test_spec(SpecVersion.VersionFlag specVersion) {
34         JsonSchemaFactory schemaFactory = factoryFor(specVersion);
35 
36         String versionId = specVersion.getId();
37         String versionStr = versionId.substring(versionId.indexOf("draft") + 6, versionId.indexOf("/schema"));
38 
39         String baseUrl = String.format("https://example.org/schema/issue928-v%s.json", versionStr);
40         System.out.println("baseUrl: " + baseUrl);
41 
42         JsonSchema byPointer = schemaFactory.getSchema(
43                 SchemaLocation.of(baseUrl + "#/definitions/example"));
44 
45         Assertions.assertEquals(byPointer.validate(mapper.valueToTree("A")).size(), 0);
46         Assertions.assertEquals(byPointer.validate(mapper.valueToTree("Z")).size(), 1);
47 
48         JsonSchema byAnchor = schemaFactory.getSchema(
49                 SchemaLocation.of(baseUrl + "#example"));
50 
51         Assertions.assertEquals(
52                 byPointer.getSchemaNode(),
53                 byAnchor.getSchemaNode());
54 
55         Assertions.assertEquals(byAnchor.validate(mapper.valueToTree("A")).size(), 0);
56         Assertions.assertEquals(byAnchor.validate(mapper.valueToTree("Z")).size(), 1);
57     }
58 }
59