diff --git a/modules/swagger-parser/src/test/java/io/swagger/parser/util/SwaggerDeserializerTest.java b/modules/swagger-parser/src/test/java/io/swagger/parser/util/SwaggerDeserializerTest.java index a91a0ee68a..e142566c2c 100644 --- a/modules/swagger-parser/src/test/java/io/swagger/parser/util/SwaggerDeserializerTest.java +++ b/modules/swagger-parser/src/test/java/io/swagger/parser/util/SwaggerDeserializerTest.java @@ -1419,4 +1419,39 @@ public void testIssue360() { Swagger rebuilt = result.getSwagger(); assertNotNull(rebuilt); } + + @Test(description = "it should deserialize untyped additionalProperties") + public void testUntypedAdditionalProperties() { + String json = "{\n" + + " \"paths\": {\n" + + " \"/store/inventory\": {\n" + + " \"get\": {\n" + + " \"responses\": {\n" + + " \"200\": {\n" + + " \"description\": \"successful operation\",\n" + + " \"schema\": {\n" + + " \"type\": \"object\",\n" + + " \"description\": \"map of anything\",\n" + + " \"additionalProperties\": {}\n" + + " }\n" + + " }\n" + + " }\n" + + " }\n" + + " }\n" + + " }\n" + + "}"; + + SwaggerParser parser = new SwaggerParser(); + + SwaggerDeserializationResult result = parser.readWithInfo(json); + List messageList = result.getMessages(); + Set messages = new HashSet(messageList); + Swagger swagger = result.getSwagger(); + + Property response = swagger.getPath("/store/inventory").getGet().getResponses().get("200").getSchema(); + assertTrue(response instanceof MapProperty); + Property additionalProperties = ((MapProperty) response).getAdditionalProperties(); + assertTrue(additionalProperties instanceof UntypedProperty); + assertEquals(additionalProperties.getType(), null); + } } diff --git a/pom.xml b/pom.xml index 547f80c111..6cf20c59c7 100644 --- a/pom.xml +++ b/pom.xml @@ -197,6 +197,11 @@ swagger-core ${swagger-core-version} + + io.swagger + swagger-models + ${swagger-core-version} + org.testng testng