Skip to content

Commit dcb8a64

Browse files
eak24frantuma
authored andcommitted
Include discriminator mapped schemas when filtering
1 parent 691c768 commit dcb8a64

File tree

3 files changed

+548
-344
lines changed

3 files changed

+548
-344
lines changed

modules/swagger-core/src/main/java/io/swagger/v3/core/filter/SpecFilter.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,12 @@ private void addSchemaRef(Schema schema, Set<String> referencedDefinitions) {
291291
referencedDefinitions.add(schema.get$ref());
292292
return;
293293
}
294+
if (schema.getDiscriminator() != null) {
295+
for (Map.Entry<String, String> mapping: schema.getDiscriminator().getMapping().entrySet()) {
296+
referencedDefinitions.add(mapping.getValue());
297+
}
298+
return;
299+
}
294300

295301
if (schema.getProperties() != null) {
296302
for (Object propName : schema.getProperties().keySet()) {

modules/swagger-core/src/test/java/io/swagger/v3/core/filter/SpecFilterTest.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,20 @@ public void shouldRemoveBrokenNestedRefs() throws IOException {
255255
assertNotNull(filtered.getComponents().getSchemas().get("Category"));
256256
assertNotNull(filtered.getComponents().getSchemas().get("Pet"));
257257
assertNotNull(filtered.getComponents().getSchemas().get("Foo"));
258+
assertNotNull(filtered.getComponents().getSchemas().get("allOfChild"));
259+
assertNotNull(filtered.getComponents().getSchemas().get("anyOfChild"));
260+
assertNotNull(filtered.getComponents().getSchemas().get("oneOfChild"));
261+
assertNotNull(filtered.getComponents().getSchemas().get("allOfparentA"));
262+
assertNotNull(filtered.getComponents().getSchemas().get("allOfparentB"));
263+
assertNotNull(filtered.getComponents().getSchemas().get("anyOfparentA"));
264+
assertNotNull(filtered.getComponents().getSchemas().get("anyOfparentB"));
265+
assertNotNull(filtered.getComponents().getSchemas().get("oneOfparentA"));
266+
assertNotNull(filtered.getComponents().getSchemas().get("oneOfparentB"));
267+
assertNotNull(filtered.getComponents().getSchemas().get("oneOfNestedParentA"));
268+
assertNotNull(filtered.getComponents().getSchemas().get("oneOfNestedParentB"));
269+
assertNotNull(filtered.getComponents().getSchemas().get("discriminatorParent"));
270+
assertNotNull(filtered.getComponents().getSchemas().get("discriminatorMatchedChildA"));
271+
assertNotNull(filtered.getComponents().getSchemas().get("discriminatorMatchedChildB"));
258272
}
259273

260274
@Test

0 commit comments

Comments
 (0)