Skip to content

Commit 30d168d

Browse files
Jan Gasperlinfrantuma
authored andcommitted
Fixed override issue on property collectionFormat part of annotation @ApiImplicitParam and added some tests.
1 parent 76f26cb commit 30d168d

File tree

3 files changed

+21
-8
lines changed

3 files changed

+21
-8
lines changed

modules/swagger-jaxrs/src/test/java/io/swagger/ReaderTest.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,7 @@
4444
import io.swagger.util.Json;
4545
import org.testng.annotations.Test;
4646

47-
import javax.ws.rs.DELETE;
48-
import javax.ws.rs.GET;
49-
import javax.ws.rs.HEAD;
50-
import javax.ws.rs.OPTIONS;
51-
import javax.ws.rs.POST;
52-
import javax.ws.rs.PUT;
47+
import javax.ws.rs.*;
5348
import javax.ws.rs.core.MediaType;
5449
import java.lang.annotation.Annotation;
5550
import java.lang.reflect.Method;
@@ -238,6 +233,7 @@ public void scanImplicitParam() {
238233
List<Parameter> params = swagger.getPath("/testString").getPost().getParameters();
239234
assertNotNull(params);
240235
assertEquals(params.size(), 8);
236+
assertEquals(params.size(), 10);
241237

242238
assertEquals(params.get(0).getName(), "sort");
243239
assertEquals(params.get(0).getIn(), "query");
@@ -278,6 +274,15 @@ public void scanImplicitParam() {
278274
// see https://github.com/swagger-api/swagger-core/issues/2556. should be not null
279275
assertNull(queryParam.getType());
280276

277+
QueryParameter selectByParam = (QueryParameter) params.get(8);
278+
assertEquals(selectByParam.getName(), "select");
279+
assertEquals(selectByParam.getIn(), "query");
280+
assertEquals(selectByParam.getCollectionFormat(), "multi");
281+
282+
QueryParameter orderByParam = (QueryParameter) params.get(9);
283+
assertEquals(orderByParam.getName(), "orderby");
284+
assertEquals(orderByParam.getIn(), "query");
285+
assertEquals(orderByParam.getCollectionFormat(), "csv");
281286
}
282287

283288
@Test(description = "scan implicit params with file objct")

modules/swagger-jaxrs/src/test/java/io/swagger/resources/ResourceWithImplicitParams.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ public class ResourceWithImplicitParams {
2323
@ApiImplicitParam(name = "height", paramType = "query", dataType = "int", allowableValues = "range[3,4]"),
2424
@ApiImplicitParam(name = "body", paramType = "body", dataType = "string", required = true),
2525
@ApiImplicitParam(name = "width", paramType = "unknown"),
26-
@ApiImplicitParam(name = "description", paramType = "query")
26+
@ApiImplicitParam(name = "description", paramType = "query"),
27+
@ApiImplicitParam(name = "select", type = "array", paramType = "query", dataTypeClass = String.class),
28+
@ApiImplicitParam(name = "orderby", type = "array", paramType = "query", dataTypeClass = String.class, collectionFormat = "csv")
2729
})
2830
@ApiOperation("Test operation with implicit parameters")
2931
public void testString() {

modules/swagger-models/src/main/java/io/swagger/models/parameters/AbstractSerializableParameter.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,13 @@ public String getType() {
249249
@Override
250250
public void setType(String type) {
251251
this.type = type;
252-
setCollectionFormat(ArrayProperty.isType(type) ? getDefaultCollectionFormat() : null);
252+
if(ArrayProperty.isType(type)) {
253+
if(getCollectionFormat() == null){
254+
setCollectionFormat(getDefaultCollectionFormat());
255+
}
256+
} else {
257+
setCollectionFormat(null);
258+
}
253259
}
254260

255261
@Override

0 commit comments

Comments
 (0)