diff --git a/modules/swagger-parser/src/test/java/io/swagger/parser/FileReferenceTests.java b/modules/swagger-parser/src/test/java/io/swagger/parser/FileReferenceTests.java index 07650e2ff7..f3b0182ec5 100644 --- a/modules/swagger-parser/src/test/java/io/swagger/parser/FileReferenceTests.java +++ b/modules/swagger-parser/src/test/java/io/swagger/parser/FileReferenceTests.java @@ -4,6 +4,7 @@ import io.swagger.models.Path; import io.swagger.models.Swagger; import io.swagger.parser.util.SwaggerDeserializationResult; +import io.swagger.util.Json; import org.testng.annotations.Test; import static org.testng.Assert.assertEquals; @@ -50,7 +51,6 @@ public void testIssue310() { assertTrue(swagger.getDefinitions().get("Paging").getProperties().size() == 1); } - @Test public void testIssue312() { SwaggerDeserializationResult result = new SwaggerParser().readWithInfo("./src/test/resources/nested-file-references/issue-312.yaml", null, true); @@ -66,4 +66,23 @@ public void testIssue312() { assertTrue(swagger.getDefinitions().size() == 2); assertTrue(swagger.getDefinitions().get("Paging").getProperties().size() == 1); } + + @Test + public void testIssue314() { + SwaggerDeserializationResult result = new SwaggerParser().readWithInfo("./src/test/resources/nested-file-references/issue-314.yaml", null, true); + assertNotNull(result.getSwagger()); + + Swagger swagger = result.getSwagger(); + assertNotNull(swagger.getPath("/events")); + Path path = swagger.getPath("/events"); + assertNotNull(path.getGet()); + + Json.prettyPrint(result); + Operation get = path.getGet(); + assertEquals(get.getOperationId(), "getEvents"); + assertTrue(swagger.getDefinitions().size() == 3); + assertTrue(swagger.getDefinitions().get("Foobar").getProperties().size() == 1); + assertTrue(swagger.getDefinitions().get("StatusResponse").getProperties().size() == 1); + assertTrue(swagger.getDefinitions().get("Paging").getProperties().size() == 1); + } } diff --git a/modules/swagger-parser/src/test/resources/nested-file-references/common2/bar.yaml b/modules/swagger-parser/src/test/resources/nested-file-references/common2/bar.yaml new file mode 100644 index 0000000000..435eb86a37 --- /dev/null +++ b/modules/swagger-parser/src/test/resources/nested-file-references/common2/bar.yaml @@ -0,0 +1,4 @@ +Foobar: + properties: + message: + type: string diff --git a/modules/swagger-parser/src/test/resources/nested-file-references/eventsWithItems.yaml b/modules/swagger-parser/src/test/resources/nested-file-references/eventsWithItems.yaml new file mode 100644 index 0000000000..5d7d2bca0c --- /dev/null +++ b/modules/swagger-parser/src/test/resources/nested-file-references/eventsWithItems.yaml @@ -0,0 +1,16 @@ +get: + description: A list of events + operationId: getEvents + responses: + 200: + description: OK + schema: + required: + - paging + - items + type: object + properties: + paging: + $ref: './common/paging.yaml#/Paging' + items: + $ref: './common2/bar.yaml#/Foobar' diff --git a/modules/swagger-parser/src/test/resources/nested-file-references/issue-314.yaml b/modules/swagger-parser/src/test/resources/nested-file-references/issue-314.yaml new file mode 100644 index 0000000000..688104550e --- /dev/null +++ b/modules/swagger-parser/src/test/resources/nested-file-references/issue-314.yaml @@ -0,0 +1,22 @@ +swagger: '2.0' +info: + title: Test API + version: '1' +host: example.com +basePath: /api/v1 +schemes: + - https +consumes: + - application/json; charset=utf-8 +produces: + - application/json; charset=utf-8 + +paths: + /events: + $ref: './eventsWithItems.yaml' + +definitions: + StatusResponse: + properties: + http_code: + type: integer