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 d8d3e01c88..20af113031 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 @@ -1666,6 +1666,43 @@ public void testIssuei432() { assertEquals("attribute paths.'/tickets'(get).responses.200.title is unexpected",result.getMessages().get(0)); } + @Test + public void testIssue1541() { + SwaggerParser parser = new SwaggerParser(); + final Swagger swagger = parser.read("src/test/resources/issue-1541/main.yaml"); + assertNotNull(swagger); + + Model inlineSchema = swagger.getPaths() + .get("/inline_response") + .getGet() + .getResponses() + .get("200") + .getResponseSchema(); + + assertNotNull(inlineSchema); + assertNotNull(inlineSchema.getProperties()); + assertNotNull(inlineSchema.getProperties().get("a")); + assertEquals("number", inlineSchema.getProperties().get("a").getType()); + + Model responseRef = swagger.getPaths() + .get("/ref_response") + .getGet() + .getResponses() + .get("200") + .getResponseSchema(); + + assertNotNull(responseRef); + assertEquals("#/definitions/ref_response_object", responseRef.getReference()); + + Model refSchema = swagger.getDefinitions() + .get("ref_response_object"); + + assertNotNull(refSchema); + assertNotNull(refSchema.getProperties()); + assertNotNull(refSchema.getProperties().get("a")); + assertEquals("number", refSchema.getProperties().get("a").getType()); + } + @Test public void testRequiredItemsInComposedModel() { SwaggerDeserializationResult result = new SwaggerParser().readWithInfo("src/test/resources/allOf-example/allOf.yaml", null, true); diff --git a/modules/swagger-parser/src/test/resources/issue-1541/main.yaml b/modules/swagger-parser/src/test/resources/issue-1541/main.yaml new file mode 100644 index 0000000000..6a8041d124 --- /dev/null +++ b/modules/swagger-parser/src/test/resources/issue-1541/main.yaml @@ -0,0 +1,38 @@ +swagger: '2.0' +info: + title: 'Issue 1541' + version: '1.0' +consumes: + - application/json +paths: + /inline_response: + get: + responses: + '200': + description: ok + schema: + type: object + additionalProperties: false + properties: + a: + type: number + /ref_response: + get: + responses: + '200': + description: ok + schema: + $ref: '#/definitions/ref_response_object' +definitions: + ref_response_object: + type: object + additionalProperties: false + properties: + a: + type: number + b: + type: object + additionalProperties: false + properties: + c: { type: number } + d: { type: string }