diff --git a/modules/swagger-parser/src/test/java/io/swagger/parser/SwaggerParserTest.java b/modules/swagger-parser/src/test/java/io/swagger/parser/SwaggerParserTest.java index c408097a34..f08a826f49 100644 --- a/modules/swagger-parser/src/test/java/io/swagger/parser/SwaggerParserTest.java +++ b/modules/swagger-parser/src/test/java/io/swagger/parser/SwaggerParserTest.java @@ -138,6 +138,16 @@ public void testLoadRelativeFileTree_Json() throws Exception { //Json.mapper().writerWithDefaultPrettyPrinter().writeValue(new File("resolved.json"), swagger); } + @Test + public void testLoadExternalNestedDefinitions() throws Exception { + SwaggerParser parser = new SwaggerParser(); + final Swagger swagger = parser.read("src/test/resources/nested-references/b.yaml"); + Map definitions = swagger.getDefinitions(); + assertTrue(definitions.containsKey("x")); + assertTrue(!definitions.containsKey("y")); + assertTrue(definitions.containsKey("z")); + } + @Test public void testPetstore() throws Exception { SwaggerParser parser = new SwaggerParser(); diff --git a/modules/swagger-parser/src/test/resources/nested-references/a.yaml b/modules/swagger-parser/src/test/resources/nested-references/a.yaml new file mode 100644 index 0000000000..fffb166321 --- /dev/null +++ b/modules/swagger-parser/src/test/resources/nested-references/a.yaml @@ -0,0 +1,14 @@ +--- +swagger: "2.0" +info: + title: test + version: '0.0.0' +paths: {} +definitions: + y: + $ref: "#/definitions/z" + z: + type: object + properties: + name: + type: string diff --git a/modules/swagger-parser/src/test/resources/nested-references/b.yaml b/modules/swagger-parser/src/test/resources/nested-references/b.yaml new file mode 100644 index 0000000000..504ab6b518 --- /dev/null +++ b/modules/swagger-parser/src/test/resources/nested-references/b.yaml @@ -0,0 +1,9 @@ +--- +swagger: "2.0" +info: + title: test + version: '0.0.0' +paths: {} +definitions: + x: + $ref: "./a.yaml#/definitions/y"