|
17 | 17 |
|
18 | 18 | package org.openapitools.codegen.java;
|
19 | 19 |
|
20 |
| -import static org.openapitools.codegen.TestUtils.validateJavaSourceFiles; |
21 |
| -import static org.testng.Assert.assertEquals; |
22 |
| -import static org.testng.Assert.assertTrue; |
23 |
| -import static org.testng.Assert.fail; |
| 20 | +import com.google.common.collect.ImmutableMap; |
| 21 | +import io.swagger.v3.oas.models.OpenAPI; |
| 22 | +import io.swagger.v3.oas.models.Operation; |
| 23 | +import io.swagger.v3.oas.models.media.ArraySchema; |
| 24 | +import io.swagger.v3.oas.models.media.ComposedSchema; |
| 25 | +import io.swagger.v3.oas.models.media.Content; |
| 26 | +import io.swagger.v3.oas.models.media.IntegerSchema; |
| 27 | +import io.swagger.v3.oas.models.media.MediaType; |
| 28 | +import io.swagger.v3.oas.models.media.ObjectSchema; |
| 29 | +import io.swagger.v3.oas.models.media.Schema; |
| 30 | +import io.swagger.v3.oas.models.media.StringSchema; |
| 31 | +import io.swagger.v3.oas.models.parameters.RequestBody; |
| 32 | +import io.swagger.v3.oas.models.responses.ApiResponse; |
| 33 | +import io.swagger.v3.parser.util.SchemaTypeUtil; |
| 34 | +import org.openapitools.codegen.ClientOptInput; |
| 35 | +import org.openapitools.codegen.CodegenConstants; |
| 36 | +import org.openapitools.codegen.CodegenModel; |
| 37 | +import org.openapitools.codegen.CodegenOperation; |
| 38 | +import org.openapitools.codegen.CodegenParameter; |
| 39 | +import org.openapitools.codegen.CodegenProperty; |
| 40 | +import org.openapitools.codegen.CodegenResponse; |
| 41 | +import org.openapitools.codegen.CodegenSecurity; |
| 42 | +import org.openapitools.codegen.DefaultGenerator; |
| 43 | +import org.openapitools.codegen.TestUtils; |
| 44 | +import org.openapitools.codegen.config.CodegenConfigurator; |
| 45 | +import org.openapitools.codegen.java.assertions.JavaFileAssert; |
| 46 | +import org.openapitools.codegen.languages.AbstractJavaCodegen; |
| 47 | +import org.openapitools.codegen.languages.JavaClientCodegen; |
| 48 | +import org.openapitools.codegen.languages.features.BeanValidationFeatures; |
| 49 | +import org.openapitools.codegen.languages.features.CXFServerFeatures; |
| 50 | +import org.openapitools.codegen.model.OperationMap; |
| 51 | +import org.openapitools.codegen.model.OperationsMap; |
| 52 | +import org.testng.Assert; |
| 53 | +import org.testng.annotations.Ignore; |
| 54 | +import org.testng.annotations.Test; |
24 | 55 |
|
25 | 56 | import java.io.File;
|
26 | 57 | import java.io.IOException;
|
|
44 | 75 | import java.util.regex.Pattern;
|
45 | 76 | import java.util.stream.Collectors;
|
46 | 77 |
|
47 |
| -import org.openapitools.codegen.ClientOptInput; |
48 |
| -import org.openapitools.codegen.CodegenConstants; |
49 |
| -import org.openapitools.codegen.CodegenModel; |
50 |
| -import org.openapitools.codegen.CodegenOperation; |
51 |
| -import org.openapitools.codegen.CodegenParameter; |
52 |
| -import org.openapitools.codegen.CodegenProperty; |
53 |
| -import org.openapitools.codegen.CodegenResponse; |
54 |
| -import org.openapitools.codegen.CodegenSecurity; |
55 |
| -import org.openapitools.codegen.DefaultGenerator; |
56 |
| -import org.openapitools.codegen.TestUtils; |
57 |
| -import org.openapitools.codegen.config.CodegenConfigurator; |
58 |
| -import org.openapitools.codegen.java.assertions.JavaFileAssert; |
59 |
| -import org.openapitools.codegen.languages.AbstractJavaCodegen; |
60 |
| -import org.openapitools.codegen.languages.JavaClientCodegen; |
61 |
| -import org.openapitools.codegen.languages.features.BeanValidationFeatures; |
62 |
| -import org.openapitools.codegen.languages.features.CXFServerFeatures; |
63 |
| -import org.openapitools.codegen.model.OperationMap; |
64 |
| -import org.openapitools.codegen.model.OperationsMap; |
65 |
| -import org.testng.Assert; |
66 |
| -import org.testng.annotations.Ignore; |
67 |
| -import org.testng.annotations.Test; |
68 |
| - |
69 |
| -import com.google.common.collect.ImmutableMap; |
70 |
| -import io.swagger.v3.oas.models.OpenAPI; |
71 |
| -import io.swagger.v3.oas.models.Operation; |
72 |
| -import io.swagger.v3.oas.models.media.ArraySchema; |
73 |
| -import io.swagger.v3.oas.models.media.ComposedSchema; |
74 |
| -import io.swagger.v3.oas.models.media.Content; |
75 |
| -import io.swagger.v3.oas.models.media.IntegerSchema; |
76 |
| -import io.swagger.v3.oas.models.media.MediaType; |
77 |
| -import io.swagger.v3.oas.models.media.ObjectSchema; |
78 |
| -import io.swagger.v3.oas.models.media.Schema; |
79 |
| -import io.swagger.v3.oas.models.media.StringSchema; |
80 |
| -import io.swagger.v3.oas.models.parameters.RequestBody; |
81 |
| -import io.swagger.v3.oas.models.responses.ApiResponse; |
82 |
| -import io.swagger.v3.parser.util.SchemaTypeUtil; |
| 78 | +import static org.openapitools.codegen.TestUtils.validateJavaSourceFiles; |
| 79 | +import static org.testng.Assert.assertEquals; |
| 80 | +import static org.testng.Assert.assertTrue; |
| 81 | +import static org.testng.Assert.fail; |
83 | 82 |
|
84 | 83 | public class JavaClientCodegenTest {
|
85 | 84 |
|
@@ -951,7 +950,7 @@ public void testRestTemplateFormMultipart() throws IOException {
|
951 | 950 | *
|
952 | 951 | * UPDATE: the following test has been ignored due to https://github.com/OpenAPITools/openapi-generator/pull/11081/
|
953 | 952 | * We will contact the contributor of the following test to see if the fix will break their use cases and
|
954 |
| - * how we can fix it accordingly. |
| 953 | + * how we can fix it accordingly. |
955 | 954 | */
|
956 | 955 | @Test
|
957 | 956 | @Ignore
|
@@ -1231,7 +1230,7 @@ public void testRestTemplateWithFreeFormInQueryParameters() throws IOException {
|
1231 | 1230 | final Path defaultApi = Paths.get(output + "/src/main/java/xyz/abcdef/ApiClient.java");
|
1232 | 1231 | TestUtils.assertFileContains(defaultApi, "value instanceof Map");
|
1233 | 1232 | }
|
1234 |
| - |
| 1233 | + |
1235 | 1234 | /**
|
1236 | 1235 | * See https://github.com/OpenAPITools/openapi-generator/issues/8352
|
1237 | 1236 | */
|
@@ -1665,4 +1664,28 @@ public void testReferencedHeader2() throws Exception {
|
1665 | 1664 | .assertParameterAnnotations()
|
1666 | 1665 | .containsWithName("NotNull");
|
1667 | 1666 | }
|
| 1667 | + |
| 1668 | + @Test |
| 1669 | + public void testNativeClientExplodedQueryParamWithArrayProperty() throws IOException { |
| 1670 | + Map<String, Object> properties = new HashMap<>(); |
| 1671 | + properties.put(CodegenConstants.API_PACKAGE, "xyz.abcdef.api"); |
| 1672 | + |
| 1673 | + File output = Files.createTempDirectory("test").toFile(); |
| 1674 | + output.deleteOnExit(); |
| 1675 | + |
| 1676 | + final CodegenConfigurator configurator = new CodegenConfigurator() |
| 1677 | + .setGeneratorName("java") |
| 1678 | + .setLibrary(JavaClientCodegen.NATIVE) |
| 1679 | + .setAdditionalProperties(properties) |
| 1680 | + .setInputSpec("src/test/resources/3_0/exploded-query-param-array.yaml") |
| 1681 | + .setOutputDir(output.getAbsolutePath().replace("\\", "/")); |
| 1682 | + |
| 1683 | + final ClientOptInput clientOptInput = configurator.toClientOptInput(); |
| 1684 | + DefaultGenerator generator = new DefaultGenerator(); |
| 1685 | + generator.opts(clientOptInput).generate(); |
| 1686 | + |
| 1687 | + TestUtils.assertFileContains(Paths.get(output + "/src/main/java/xyz/abcdef/api/DefaultApi.java"), |
| 1688 | + "localVarQueryParams.addAll(ApiClient.parameterToPairs(\"multi\", \"values\", queryObject.getValues()));" |
| 1689 | + ); |
| 1690 | + } |
1668 | 1691 | }
|
0 commit comments