forked from loafle/openapi-generator-original
Fix parameter in PathItem (#639)
This commit is contained in:
parent
37be47fc56
commit
85f0909c7f
@ -896,8 +896,8 @@ public class DefaultGenerator extends AbstractGenerator implements Generator {
|
||||
if (path.getParameters() != null) {
|
||||
for (Parameter parameter : path.getParameters()) {
|
||||
//skip propagation if a parameter with the same name is already defined at the operation level
|
||||
if (!operationParameters.contains(generateParameterId(parameter)) && operation.getParameters() != null) {
|
||||
operation.getParameters().add(parameter);
|
||||
if (!operationParameters.contains(generateParameterId(parameter))) {
|
||||
operation.addParametersItem(parameter);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,50 @@
|
||||
package org.openapitools.codegen;
|
||||
|
||||
import io.swagger.v3.oas.models.OpenAPI;
|
||||
import io.swagger.v3.oas.models.Operation;
|
||||
import io.swagger.v3.oas.models.PathItem;
|
||||
import io.swagger.v3.oas.models.Paths;
|
||||
import io.swagger.v3.oas.models.media.IntegerSchema;
|
||||
import io.swagger.v3.oas.models.media.StringSchema;
|
||||
import io.swagger.v3.oas.models.parameters.QueryParameter;
|
||||
import io.swagger.v3.oas.models.responses.ApiResponse;
|
||||
import io.swagger.v3.oas.models.responses.ApiResponses;
|
||||
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class DefaultGeneratorTest {
|
||||
|
||||
@Test
|
||||
public void testProcessPaths() throws Exception {
|
||||
OpenAPI openAPI = TestUtils.createOpenAPI();
|
||||
openAPI.setPaths(new Paths());
|
||||
openAPI.getPaths().addPathItem("path1/", new PathItem().get(new Operation().operationId("op1").responses(new ApiResponses().addApiResponse("201", new ApiResponse().description("OK")))));
|
||||
openAPI.getPaths().addPathItem("path2/", new PathItem().get(new Operation().operationId("op2").addParametersItem(new QueryParameter().name("p1").schema(new StringSchema())).responses(new ApiResponses().addApiResponse("201", new ApiResponse().description("OK")))));
|
||||
openAPI.getPaths().addPathItem("path3/", new PathItem().addParametersItem(new QueryParameter().name("p1").schema(new StringSchema())).get(new Operation().operationId("op3").addParametersItem(new QueryParameter().name("p2").schema(new IntegerSchema())).responses(new ApiResponses().addApiResponse("201", new ApiResponse().description("OK")))));
|
||||
openAPI.getPaths().addPathItem("path4/", new PathItem().addParametersItem(new QueryParameter().name("p1").schema(new StringSchema())).get(new Operation().operationId("op4").responses(new ApiResponses().addApiResponse("201", new ApiResponse().description("OK")))));
|
||||
|
||||
ClientOptInput opts = new ClientOptInput();
|
||||
opts.setOpenAPI(openAPI);
|
||||
opts.setConfig(new DefaultCodegen());
|
||||
opts.setOpts(new ClientOpts());
|
||||
|
||||
DefaultGenerator generator = new DefaultGenerator();
|
||||
generator.opts(opts);
|
||||
Map<String, List<CodegenOperation>> result = generator.processPaths(openAPI.getPaths());
|
||||
Assert.assertEquals(result.size(), 1);
|
||||
List<CodegenOperation> defaultList = result.get("Default");
|
||||
Assert.assertEquals(defaultList.size(), 4);
|
||||
Assert.assertEquals(defaultList.get(0).path, "path1/");
|
||||
Assert.assertEquals(defaultList.get(0).allParams.size(), 0);
|
||||
Assert.assertEquals(defaultList.get(1).path, "path2/");
|
||||
Assert.assertEquals(defaultList.get(1).allParams.size(), 1);
|
||||
Assert.assertEquals(defaultList.get(2).path, "path3/");
|
||||
Assert.assertEquals(defaultList.get(2).allParams.size(), 2);
|
||||
Assert.assertEquals(defaultList.get(3).path, "path4/");
|
||||
Assert.assertEquals(defaultList.get(3).allParams.size(), 1);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user