• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package com.networknt.schema;
2 
3 import com.fasterxml.jackson.databind.JsonNode;
4 import com.fasterxml.jackson.databind.ObjectMapper;
5 import org.junit.jupiter.api.Assertions;
6 import org.junit.jupiter.api.Test;
7 
8 import java.io.IOException;
9 import java.util.Set;
10 
11 public class UnknownMetaSchemaTest {
12 
13     private String schema1 = "{\"$schema\":\"http://json-schema.org/draft-07/schema\",\"title\":\"thingModel\",\"description\":\"description of thing\",\"type\":\"object\",\"properties\":{\"data\":{\"type\":\"integer\"},\"required\":[\"data\"]}}";
14     private String schema2 = "{\"$schema\":\"https://json-schema.org/draft-07/schema\",\"title\":\"thingModel\",\"description\":\"description of thing\",\"type\":\"object\",\"properties\":{\"data\":{\"type\":\"integer\"},\"required\":[\"data\"]}}";
15     private String schema3 = "{\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"title\":\"thingModel\",\"description\":\"description of thing\",\"type\":\"object\",\"properties\":{\"data\":{\"type\":\"integer\"},\"required\":[\"data\"]}}";
16 
17     private String json = "{\"data\":1}";
18 
19     @Test
testSchema1()20     public void testSchema1() throws IOException {
21         ObjectMapper mapper = new ObjectMapper();
22         JsonNode jsonNode = mapper.readTree(this.json);
23 
24         JsonSchemaFactory factory = JsonSchemaFactory.builder(JsonSchemaFactory.getInstance(SpecVersion.VersionFlag.V7)).jsonMapper(mapper).build();
25         JsonSchema jsonSchema = factory.getSchema(schema1);
26 
27         Set<ValidationMessage> errors = jsonSchema.validate(jsonNode);
28         for(ValidationMessage error:errors) {
29             System.out.println(error.getMessage());
30         }
31     }
32 
33     @Test
testSchema2()34     public void testSchema2() throws IOException {
35         ObjectMapper mapper = new ObjectMapper();
36         JsonNode jsonNode = mapper.readTree(this.json);
37 
38         JsonSchemaFactory factory = JsonSchemaFactory.builder(JsonSchemaFactory.getInstance(SpecVersion.VersionFlag.V7)).jsonMapper(mapper).build();
39         JsonSchema jsonSchema = factory.getSchema(schema2);
40 
41         Set<ValidationMessage> errors = jsonSchema.validate(jsonNode);
42         for(ValidationMessage error:errors) {
43             System.out.println(error.getMessage());
44         }
45     }
46     @Test
testSchema3()47     public void testSchema3() throws IOException {
48         ObjectMapper mapper = new ObjectMapper();
49         JsonNode jsonNode = mapper.readTree(this.json);
50 
51         JsonSchemaFactory factory = JsonSchemaFactory.builder(JsonSchemaFactory.getInstance(SpecVersion.VersionFlag.V7)).jsonMapper(mapper).build();
52         JsonSchema jsonSchema = factory.getSchema(schema3);
53 
54         Set<ValidationMessage> errors = jsonSchema.validate(jsonNode);
55         for(ValidationMessage error:errors) {
56             System.out.println(error.getMessage());
57         }
58     }
59 
60     @Test
testNormalize()61     public void testNormalize() throws JsonSchemaException {
62 
63         String uri01 = "http://json-schema.org/draft-07/schema";
64         String uri02 = "http://json-schema.org/draft-07/schema#";
65         String uri03 = "http://json-schema.org/draft-07/schema?key=value";
66         String uri04 = "http://json-schema.org/draft-07/schema?key=value&key2=value2";
67         String expected = SchemaId.V7;
68 
69         Assertions.assertEquals(expected, JsonSchemaFactory.normalizeMetaSchemaUri(uri01));
70         Assertions.assertEquals(expected, JsonSchemaFactory.normalizeMetaSchemaUri(uri02));
71         Assertions.assertEquals(expected, JsonSchemaFactory.normalizeMetaSchemaUri(uri03));
72         Assertions.assertEquals(expected, JsonSchemaFactory.normalizeMetaSchemaUri(uri04));
73 
74     }
75 }
76