Skip to content

Commit 8b3c6b0

Browse files
committed
add DefaultSchemaResolver tests
1 parent e758fa3 commit 8b3c6b0

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

src/test/java/dev/harrel/jsonschema/DefaultSchemaResolverTest.java

+38
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,12 @@
33
import dev.harrel.jsonschema.providers.JacksonNode;
44
import org.junit.jupiter.api.Test;
55
import org.junit.jupiter.params.ParameterizedTest;
6+
import org.junit.jupiter.params.provider.Arguments;
67
import org.junit.jupiter.params.provider.EnumSource;
8+
import org.junit.jupiter.params.provider.MethodSource;
9+
10+
import java.net.URI;
11+
import java.util.stream.Stream;
712

813
import static dev.harrel.jsonschema.ValidatorFactory.DefaultSchemaResolver;
914
import static org.assertj.core.api.Assertions.assertThat;
@@ -20,6 +25,26 @@ void shouldResolveAllSpecificationMetaSchemas(SpecificationVersion spec) {
2025
assertThat(result.toJsonNode(new JacksonNode.Factory())).isPresent();
2126
}
2227

28+
@ParameterizedTest
29+
@EnumSource(SpecificationVersion.class)
30+
void shouldHandleNonExistentSubSchemas(SpecificationVersion spec) {
31+
URI uri = URI.create(spec.getId()).resolve("meta/not-found");
32+
DefaultSchemaResolver resolver = new DefaultSchemaResolver();
33+
SchemaResolver.Result result = resolver.resolve(uri.toString());
34+
35+
assertThat(result.isEmpty()).isTrue();
36+
}
37+
38+
@ParameterizedTest
39+
@MethodSource("getDraft2019SubSchemas")
40+
void shouldResolveDraft2019SubSchemas(URI uri) {
41+
DefaultSchemaResolver resolver = new DefaultSchemaResolver();
42+
SchemaResolver.Result result = resolver.resolve(uri.toString());
43+
44+
assertThat(result.isEmpty()).isFalse();
45+
assertThat(result.toJsonNode(new JacksonNode.Factory())).isPresent();
46+
}
47+
2348
@Test
2449
void shouldHandleNonExistentResource() {
2550
DefaultSchemaResolver resolver = new DefaultSchemaResolver();
@@ -38,4 +63,17 @@ void shouldCacheResults() {
3863
assertThat(result.isEmpty()).isFalse();
3964
assertThat(result.toJsonNode(new JacksonNode.Factory())).isPresent();
4065
}
66+
67+
static Stream<Arguments> getDraft2019SubSchemas() {
68+
return Stream.of(
69+
"meta/applicator",
70+
"meta/content",
71+
"meta/core",
72+
"meta/format",
73+
"meta/meta-data",
74+
"meta/validation"
75+
)
76+
.map(uri -> URI.create(SpecificationVersion.DRAFT2019_09.getId()).resolve(uri))
77+
.map(Arguments::of);
78+
}
4179
}

0 commit comments

Comments
 (0)