Skip to content

Commit b16dd24

Browse files
committed
setting the location of ReferenceSchema instances (the location where the $ref occured)
1 parent c72cf3c commit b16dd24

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

core/src/main/java/org/everit/json/schema/loader/ReferenceLookup.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ Schema.Builder<?> lookup(String relPointerString, JsonObject ctx) {
166166
.schemaJson(result.getQueryResult())
167167
.rootSchemaJson(result.getContainingDocument()).build();
168168
Schema referredSchema = childLoader.load().build();
169+
refBuilder.schemaLocation(SchemaLocation.parseURI(absPointerString));
169170
refBuilder.build().setReferredSchema(referredSchema);
170171
return refBuilder;
171172
}

core/src/test/java/org/everit/json/schema/loader/ReferenceLookupTest.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,23 @@ public void before() {
3232
}
3333

3434
private Schema performLookup(String pointerToRef) {
35+
ReferenceSchema ref = obtainReferenceSchema(pointerToRef);
36+
return ref.getReferredSchema();
37+
}
38+
39+
private ReferenceSchema obtainReferenceSchema(String pointerToRef) {
3540
JsonObject jsonValue = query(pointerToRef).requireObject();
3641
ReferenceLookup subject = new ReferenceLookup(jsonValue.ls);
3742
String refPointer = jsonValue.require("$ref").requireString();
3843
Schema.Builder<?> actual = subject.lookup(refPointer, jsonValue);
39-
ReferenceSchema ref = (ReferenceSchema) actual.build();
40-
return ref.getReferredSchema();
44+
return (ReferenceSchema) actual.build();
45+
}
46+
47+
@Test
48+
public void referenceSchemaLocationIsSet() {
49+
when(httpClient.get("http://localhost/child-ref")).thenReturn(asStream(v4Subschema));
50+
ReferenceSchema ref = obtainReferenceSchema("#/properties/definitionInRemote");
51+
assertEquals("http://localhost/child-ref#/definitions/SubSchema", ref.getSchemaLocation());
4152
}
4253

4354
@Test

0 commit comments

Comments
 (0)