From 30d168dab57b0396bcf15dc62f838c9ed28d1b43 Mon Sep 17 00:00:00 2001 From: Jan Gasperlin Date: Tue, 27 Jun 2017 20:46:03 +0200 Subject: [PATCH 1/2] Fixed override issue on property collectionFormat part of annotation @ApiImplicitParam and added some tests. --- .../src/test/java/io/swagger/ReaderTest.java | 17 +++++++++++------ .../resources/ResourceWithImplicitParams.java | 4 +++- .../AbstractSerializableParameter.java | 8 +++++++- 3 files changed, 21 insertions(+), 8 deletions(-) diff --git a/modules/swagger-jaxrs/src/test/java/io/swagger/ReaderTest.java b/modules/swagger-jaxrs/src/test/java/io/swagger/ReaderTest.java index 5a12f8bbf1..813d88a3c0 100644 --- a/modules/swagger-jaxrs/src/test/java/io/swagger/ReaderTest.java +++ b/modules/swagger-jaxrs/src/test/java/io/swagger/ReaderTest.java @@ -44,12 +44,7 @@ import io.swagger.util.Json; import org.testng.annotations.Test; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.HEAD; -import javax.ws.rs.OPTIONS; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; +import javax.ws.rs.*; import javax.ws.rs.core.MediaType; import java.lang.annotation.Annotation; import java.lang.reflect.Method; @@ -238,6 +233,7 @@ public void scanImplicitParam() { List params = swagger.getPath("/testString").getPost().getParameters(); assertNotNull(params); assertEquals(params.size(), 8); + assertEquals(params.size(), 10); assertEquals(params.get(0).getName(), "sort"); assertEquals(params.get(0).getIn(), "query"); @@ -278,6 +274,15 @@ public void scanImplicitParam() { // see https://github.com/swagger-api/swagger-core/issues/2556. should be not null assertNull(queryParam.getType()); + QueryParameter selectByParam = (QueryParameter) params.get(8); + assertEquals(selectByParam.getName(), "select"); + assertEquals(selectByParam.getIn(), "query"); + assertEquals(selectByParam.getCollectionFormat(), "multi"); + + QueryParameter orderByParam = (QueryParameter) params.get(9); + assertEquals(orderByParam.getName(), "orderby"); + assertEquals(orderByParam.getIn(), "query"); + assertEquals(orderByParam.getCollectionFormat(), "csv"); } @Test(description = "scan implicit params with file objct") diff --git a/modules/swagger-jaxrs/src/test/java/io/swagger/resources/ResourceWithImplicitParams.java b/modules/swagger-jaxrs/src/test/java/io/swagger/resources/ResourceWithImplicitParams.java index 7d10f7840e..711815aded 100644 --- a/modules/swagger-jaxrs/src/test/java/io/swagger/resources/ResourceWithImplicitParams.java +++ b/modules/swagger-jaxrs/src/test/java/io/swagger/resources/ResourceWithImplicitParams.java @@ -23,7 +23,9 @@ public class ResourceWithImplicitParams { @ApiImplicitParam(name = "height", paramType = "query", dataType = "int", allowableValues = "range[3,4]"), @ApiImplicitParam(name = "body", paramType = "body", dataType = "string", required = true), @ApiImplicitParam(name = "width", paramType = "unknown"), - @ApiImplicitParam(name = "description", paramType = "query") + @ApiImplicitParam(name = "description", paramType = "query"), + @ApiImplicitParam(name = "select", type = "array", paramType = "query", dataTypeClass = String.class), + @ApiImplicitParam(name = "orderby", type = "array", paramType = "query", dataTypeClass = String.class, collectionFormat = "csv") }) @ApiOperation("Test operation with implicit parameters") public void testString() { diff --git a/modules/swagger-models/src/main/java/io/swagger/models/parameters/AbstractSerializableParameter.java b/modules/swagger-models/src/main/java/io/swagger/models/parameters/AbstractSerializableParameter.java index 4712e2847d..87604521aa 100644 --- a/modules/swagger-models/src/main/java/io/swagger/models/parameters/AbstractSerializableParameter.java +++ b/modules/swagger-models/src/main/java/io/swagger/models/parameters/AbstractSerializableParameter.java @@ -249,7 +249,13 @@ public String getType() { @Override public void setType(String type) { this.type = type; - setCollectionFormat(ArrayProperty.isType(type) ? getDefaultCollectionFormat() : null); + if(ArrayProperty.isType(type)) { + if(getCollectionFormat() == null){ + setCollectionFormat(getDefaultCollectionFormat()); + } + } else { + setCollectionFormat(null); + } } @Override From 26831db09bfbc7e900882dbfa1640b08153d3312 Mon Sep 17 00:00:00 2001 From: frantuma Date: Tue, 8 May 2018 17:37:57 +0200 Subject: [PATCH 2/2] collectionFormat override fix - rebase and imports --- .../src/test/java/io/swagger/ReaderTest.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/swagger-jaxrs/src/test/java/io/swagger/ReaderTest.java b/modules/swagger-jaxrs/src/test/java/io/swagger/ReaderTest.java index 813d88a3c0..da740cf8c6 100644 --- a/modules/swagger-jaxrs/src/test/java/io/swagger/ReaderTest.java +++ b/modules/swagger-jaxrs/src/test/java/io/swagger/ReaderTest.java @@ -44,7 +44,12 @@ import io.swagger.util.Json; import org.testng.annotations.Test; -import javax.ws.rs.*; +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.HEAD; +import javax.ws.rs.OPTIONS; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; import javax.ws.rs.core.MediaType; import java.lang.annotation.Annotation; import java.lang.reflect.Method; @@ -232,7 +237,6 @@ public void scanImplicitParam() { Swagger swagger = getSwagger(ResourceWithImplicitParams.class); List params = swagger.getPath("/testString").getPost().getParameters(); assertNotNull(params); - assertEquals(params.size(), 8); assertEquals(params.size(), 10); assertEquals(params.get(0).getName(), "sort");