From c531df424c861695296f8e837269ff6332815ed7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1chym=20Metli=C4=8Dka?= Date: Sun, 15 Feb 2026 09:40:27 +0100 Subject: [PATCH] refactor: replace Collectors.toMap with custom collector for case-insensitive file name ordering to simplify lookup in the table while debugging tests. --- .../org/openapitools/codegen/TestUtils.java | 27 +++++- .../codegen/config/MergedSpecBuilderTest.java | 5 +- .../codegen/java/JavaClientCodegenTest.java | 53 +++++------ .../JavaValidationArrayPrimitivesTest.java | 10 +- .../JavaJAXRSCXFCDIServerCodegenTest.java | 6 +- .../jaxrs/JavaJAXRSSpecServerCodegenTest.java | 14 ++- .../codegen/java/jaxrs/JavaJaxrsBaseTest.java | 7 +- ...vaJaxrsResteasyServerCodegenModelTest.java | 5 +- .../jaxrs/JavaJerseyServerCodegenTest.java | 3 +- .../JavaMicroprofileServerCodegenTest.java | 19 ++-- .../java/spring/SpringCodegenTest.java | 95 +++++++++---------- .../spring/KotlinSpringServerCodegenTest.java | 9 +- .../codegen/php/PhpClientCodegenTest.java | 7 +- .../php/PhpNextgenClientCodegenTest.java | 9 +- 14 files changed, 139 insertions(+), 130 deletions(-) diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/TestUtils.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/TestUtils.java index b0b0396a2ab9..b8b1f1cdd5d1 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/TestUtils.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/TestUtils.java @@ -15,6 +15,7 @@ import io.swagger.v3.oas.models.media.Schema; import io.swagger.v3.oas.models.servers.Server; import io.swagger.v3.parser.core.models.ParseOptions; +import org.jetbrains.annotations.NotNull; import org.openapitools.codegen.java.assertions.JavaFileAssert; import org.openapitools.codegen.model.ModelMap; import org.openapitools.codegen.model.ModelsMap; @@ -24,12 +25,12 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.function.Function; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.util.stream.Collector; +import java.util.stream.Collectors; import static org.testng.Assert.*; @@ -352,4 +353,22 @@ public static Path newTempFolder() { return tempDir; } + + + /** + * Returns a collector that collects files into a {@link TreeMap} sorted by file name, + * using case-insensitive ordering (but accepting both keys - e.g. "application" and "Application"). + * This is used to have files sorted by name (case-insensitive) to simplify lookup during test debugging. + */ + @NotNull + public static Collector> collectToCaseInsensitiveOrderedCaseSensitiveKeyMap() { + return Collectors.toMap( + File::getName, + Function.identity(), + (existing, replacement) -> { + throw new IllegalStateException("Duplicate key: " + existing); + }, + () -> new TreeMap<>(Comparator.comparing(s -> s.toLowerCase(Locale.ROOT)) + .thenComparing(Comparator.naturalOrder()))); + } } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/config/MergedSpecBuilderTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/config/MergedSpecBuilderTest.java index 42f9e0a547d1..59d572e0f6db 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/config/MergedSpecBuilderTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/config/MergedSpecBuilderTest.java @@ -15,9 +15,8 @@ import java.nio.file.Files; import java.nio.file.Paths; import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; +import static org.openapitools.codegen.TestUtils.collectToCaseInsensitiveOrderedCaseSensitiveKeyMap; import static org.openapitools.codegen.languages.SpringCodegen.*; public class MergedSpecBuilderTest { @@ -66,7 +65,7 @@ private void assertFilesFromMergedSpec(String mergedSpec) throws IOException { DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("Spec1Api.java")) .assertMethod("spec1Operation").hasReturnType("ResponseEntity") diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java index 94a0a6f4535e..d882941fb7db 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java @@ -58,7 +58,6 @@ import java.nio.file.Paths; import java.util.*; import java.util.function.Consumer; -import java.util.function.Function; import java.util.function.Predicate; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -1160,7 +1159,7 @@ public void shouldGenerateBlockingAndNoBlockingOperationsForWebClient() { DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(configurator.toClientOptInput()).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("StoreApi.java")) .assertMethod("getInventory") @@ -1579,7 +1578,7 @@ public void testMicroprofileGenerateCorrectJsonbCreator_issue12622() { .setOutputDir(output.toString().replace("\\", "/")); Map files = new DefaultGenerator().opts(configurator.toClientOptInput()).generate() - .stream().collect(Collectors.toMap(File::getName, Function.identity())); + .stream().collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("Foo.java")) .assertConstructor("String", "Integer") @@ -1613,7 +1612,7 @@ public void testMicroprofileGenerateCorrectJacksonGenerator_issue18336() throws final ClientOptInput clientOptInput = configurator.toClientOptInput(); DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(clientOptInput).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("Pet.java")) .assertConstructor("String") @@ -1636,7 +1635,7 @@ public void testJavaClientDefaultValues_issueNoNumber() { .setInputSpec("src/test/resources/bugs/java-codegen-empty-array-as-default-value/issue_wrong-default.yaml"); Map files = new DefaultGenerator().opts(configurator.toClientOptInput()).generate() - .stream().collect(Collectors.toMap(File::getName, Function.identity())); + .stream().collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("DefaultValuesType.java")) .assertProperty("stringDefault") @@ -1660,7 +1659,7 @@ public void testWebClientJsonCreatorWithNullable_issue12790() { .setOutputDir(output.toString().replace("\\", "/")); Map files = new DefaultGenerator().opts(configurator.toClientOptInput()).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("TestObject.java")) .printFileContent() @@ -1727,7 +1726,7 @@ public void testReferencedHeader2() { .setOutputDir(output.toString().replace("\\", "/")); Map files = new DefaultGenerator().opts(configurator.toClientOptInput()).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("DefaultApi.java")) .assertMethod("operationWithHttpInfo") @@ -2044,7 +2043,7 @@ private static Map generateFromContract( .setOutputDir(output.toString()); consumer.accept(configurator); return new DefaultGenerator().opts(configurator.toClientOptInput()).generate() - .stream().collect(Collectors.toMap(File::getName, Function.identity())); + .stream().collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); } @Test @@ -2200,7 +2199,7 @@ public void shouldNotAddAdditionalModelAnnotationsToAbstractOpenApiSchema_issue1 .setOutputDir(output.toString().replace("\\", "/")); Map files = new DefaultGenerator().opts(configurator.toClientOptInput()).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("AbstractOpenApiSchema.java")) .assertTypeAnnotations() @@ -2371,7 +2370,7 @@ public void testEnumCaseInsensitive_issue8084() { codegen.additionalProperties().put(USE_ENUM_CASE_INSENSITIVE, "true"); Map files = new DefaultGenerator().opts(new ClientOptInput().openAPI(openAPI).config(codegen)) - .generate().stream().collect(Collectors.toMap(File::getName, Function.identity())); + .generate().stream().collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("EnumTest.java")) .assertMethod("fromValue") @@ -2387,7 +2386,7 @@ public void testEnumCaseSensitive_issue8084() { codegen.additionalProperties().put(USE_ENUM_CASE_INSENSITIVE, "false"); Map files = new DefaultGenerator().opts(new ClientOptInput().openAPI(openAPI).config(codegen)) - .generate().stream().collect(Collectors.toMap(File::getName, Function.identity())); + .generate().stream().collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("EnumTest.java")) .assertMethod("fromValue") @@ -2402,7 +2401,7 @@ public void testMapOfInnerEnum_issue19393() { codegen.setOutputDir(newTempFolder().toString()); Map files = new DefaultGenerator().opts(new ClientOptInput().openAPI(openAPI).config(codegen)) - .generate().stream().collect(Collectors.toMap(File::getName, Function.identity())); + .generate().stream().collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("EmployeeWithMapOfEnum.java")) .assertProperty("projectRole") @@ -2444,7 +2443,7 @@ public void testHandleConstantParams() { codegen.setAutosetConstants(true); Map files = new DefaultGenerator().opts(new ClientOptInput().openAPI(openAPI).config(codegen)) - .generate().stream().collect(Collectors.toMap(File::getName, Function.identity())); + .generate().stream().collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); File apiFile = files.get("HelloExampleApi.java"); Assertions.assertNotNull(apiFile); @@ -2462,7 +2461,7 @@ public void testAllOfWithSinglePrimitiveTypeRef() { codegen.setAutosetConstants(true); Map files = new DefaultGenerator().opts(new ClientOptInput().openAPI(openAPI).config(codegen)) - .generate().stream().collect(Collectors.toMap(File::getName, Function.identity())); + .generate().stream().collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); assertNull(files.get("AllOfDatetime.java")); } @@ -2478,7 +2477,7 @@ public void testOpenapiGeneratorIgnoreListOption() { codegen.openapiGeneratorIgnoreList().add("pom.xml"); Map files = new DefaultGenerator().opts(new ClientOptInput().openAPI(openAPI).config(codegen)) - .generate().stream().collect(Collectors.toMap(File::getName, Function.identity())); + .generate().stream().collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); // make sure README.md and pom.xml are not generated assertNull(files.get("README.md")); @@ -2494,7 +2493,7 @@ public void testEnumDiscriminatorDefaultValueIsNotString() { codegen.setOutputDir(output.toString()); Map files = new DefaultGenerator().opts(new ClientOptInput().openAPI(openAPI).config(codegen)) - .generate().stream().collect(Collectors.toMap(File::getName, Function.identity())); + .generate().stream().collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); Map expectedContents = Map.of( "Cat", "this.petType = PetTypeEnum.CATTY", @@ -2579,7 +2578,7 @@ private void testHandleURIEnum(String library, String[] expectedInnerEnumLines, .setOutputDir(output.toString().replace("\\", "/")); Map files = new DefaultGenerator().opts(configurator.toClientOptInput()).generate() - .stream().collect(Collectors.toMap(File::getName, Function.identity())); + .stream().collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); // enum File modelFile = files.get("Metadata.java"); @@ -2756,7 +2755,7 @@ public void testRestClientJsonCreatorWithNullable_issue12790() { .setOutputDir(output.toString().replace("\\", "/")); Map files = new DefaultGenerator().opts(configurator.toClientOptInput()).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("TestObject.java")) .printFileContent() @@ -3241,7 +3240,7 @@ public void testRestTemplateWithCustomUserAgent() { .setOutputDir(output.toString().replace("\\", "/")); final Map files = new DefaultGenerator().opts(configurator.toClientOptInput()).generate() - .stream().collect(Collectors.toMap(File::getName, Function.identity())); + .stream().collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); final JavaFileAssert apiClient = JavaFileAssert.assertThat(files.get("ApiClient.java")) .printFileContent(); @@ -3531,7 +3530,7 @@ public void callNativeServiceWithEmptyResponseSync() throws IOException { DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(clientOptInput).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); File apiFile = files.get("DefaultApi.java"); assertNotNull(apiFile); @@ -3563,7 +3562,7 @@ public void annotationLibraryDoesNotCauseImportConflicts() throws IOException { DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(clientOptInput).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); File apiFile = files.get("Schema.java"); assertNotNull(apiFile); @@ -3592,7 +3591,7 @@ public void annotationLibraryGeneratesCorrectImports() throws IOException { DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(clientOptInput).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); File apiFile = files.get("Schema.java"); assertNotNull(apiFile); @@ -3627,7 +3626,7 @@ public void callNativeServiceWithEmptyResponseAsync() throws IOException { DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(clientOptInput).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); File apiFile = files.get("DefaultApi.java"); assertNotNull(apiFile); @@ -3648,7 +3647,7 @@ public void testEnumWithImplements() { codegen.setOutputDir(output.toString()); Map files = new DefaultGenerator().opts(new ClientOptInput().openAPI(openAPI).config(codegen)) - .generate().stream().collect(Collectors.toMap(File::getName, Function.identity())); + .generate().stream().collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("Type.java")).fileContains("Type implements java.io.Serializable {"); } @@ -3672,7 +3671,7 @@ public void testClassesAreValidJavaJersey2() { .setOutputDir(output.toString().replace("\\", "/")); Map files = new DefaultGenerator().opts(configurator.toClientOptInput()).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); File oneOfFile = files.get("ResultObjectOneOf.java"); assertNotNull(oneOfFile); @@ -3709,7 +3708,7 @@ public void testClassesAreValidJavaJersey3() { .setOutputDir(output.toString().replace("\\", "/")); Map files = new DefaultGenerator().opts(configurator.toClientOptInput()).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); File oneOfFile = files.get("ResultObjectOneOf.java"); assertNotNull(oneOfFile); @@ -3746,7 +3745,7 @@ public void testClassesAreValidJavaOkHttpGson() { .setOutputDir(output.toString().replace("\\", "/")); Map files = new DefaultGenerator().opts(configurator.toClientOptInput()).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); File oneOfFile = files.get("ResultObjectOneOf.java"); assertNotNull(oneOfFile); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaValidationArrayPrimitivesTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaValidationArrayPrimitivesTest.java index 322c36f8bd7d..57ed76216b5b 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaValidationArrayPrimitivesTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaValidationArrayPrimitivesTest.java @@ -34,8 +34,8 @@ import java.util.Collections; import java.util.Map; import java.util.function.Consumer; -import java.util.function.Function; -import java.util.stream.Collectors; + +import static org.openapitools.codegen.TestUtils.collectToCaseInsensitiveOrderedCaseSensitiveKeyMap; public class JavaValidationArrayPrimitivesTest { private static Consumer> assertWithValidationWithoutJsonNullable() { @@ -225,7 +225,7 @@ public void shouldAddValidAnnotationIntoCollectionWhenBeanValidationIsEnabled_is final DefaultGenerator generator = new DefaultGenerator(); final Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); asserts.accept(files); } @@ -408,7 +408,7 @@ public void shouldNotAddValidAnnotationIntoCollectionWhenBeanValidationIsNotEnab final DefaultGenerator generator = new DefaultGenerator(); final Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); asserts.accept(files); } @@ -445,7 +445,7 @@ public void typeMappingsForCollections(Map typeMappings, String input.config(codegen); final DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); String arrayMapping = typeMappings.getOrDefault("array", "List"); // @Valid@Size(min = 5) is not nice, but not related to this fix diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSCXFCDIServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSCXFCDIServerCodegenTest.java index 33731edb6520..2d3a9d388693 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSCXFCDIServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSCXFCDIServerCodegenTest.java @@ -15,8 +15,8 @@ import java.io.File; import java.nio.file.Files; import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; + +import static org.openapitools.codegen.TestUtils.collectToCaseInsensitiveOrderedCaseSensitiveKeyMap; public class JavaJAXRSCXFCDIServerCodegenTest extends JavaJaxrsBaseTest { @@ -42,7 +42,7 @@ public void testHandleDefaultValue_issue8535() throws Exception { DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("TestHeadersApi.java")) .assertMethod("headersTest") diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSSpecServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSSpecServerCodegenTest.java index 2e9e2e2153d2..45f4f21cb7c9 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSSpecServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJAXRSSpecServerCodegenTest.java @@ -25,8 +25,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; import static org.openapitools.codegen.TestUtils.*; import static org.openapitools.codegen.languages.JavaJAXRSSpecServerCodegen.*; @@ -676,7 +674,7 @@ public void testHandleDefaultValue_issue8535() throws Exception { DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("TestHeadersApi.java")) .assertMethod("headersTest") @@ -747,7 +745,7 @@ public void testValidAnnotation_issue14432() throws Exception { DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("ComplexObject.java")) .fileContains("private @Valid List dates") @@ -938,7 +936,7 @@ public void testHandleRequiredAndReadOnlyPropertiesCorrectly() throws Exception DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("ReadonlyAndRequiredProperties.java")) .assertProperty("requiredYesReadonlyYes") @@ -1185,7 +1183,7 @@ public void testEnumUnknownDefaultCaseDeserializationTrue_issue13444() throws Ex DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("Color.java")) .assertMethod("fromValue").bodyContainsLines("return UNKNOWN_DEFAULT_OPEN_API"); @@ -1208,7 +1206,7 @@ public void testEnumUnknownDefaultCaseDeserializationNotSet_issue13444() throws DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("Color.java")) .assertMethod("fromValue").bodyContainsLines("throw new IllegalArgumentException(\"Unexpected value '\" + value + \"'\");"); @@ -1232,7 +1230,7 @@ public void disableGenerateJsonCreator() throws Exception { DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); assertFileNotContains(files.get("RequiredProperties.java").toPath(), "@JsonCreator"); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJaxrsBaseTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJaxrsBaseTest.java index e1e77d5a53f8..4dfcd9b15669 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJaxrsBaseTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJaxrsBaseTest.java @@ -17,11 +17,8 @@ import java.nio.file.Paths; import java.util.List; import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; -import static org.openapitools.codegen.TestUtils.assertFileContains; -import static org.openapitools.codegen.TestUtils.assertFileNotContains; +import static org.openapitools.codegen.TestUtils.*; import static org.openapitools.codegen.languages.AbstractJavaCodegen.JACKSON; public abstract class JavaJaxrsBaseTest { @@ -318,7 +315,7 @@ public void testClassInheritanceEqualsHashCode() throws Exception { DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input) .generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); // Assert that the base class does not call super.equals() or super.hashCode() JavaFileAssert.assertThat(files.get("BaseClass.java")).assertMethod("equals").bodyNotContainsLines("super"); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJaxrsResteasyServerCodegenModelTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJaxrsResteasyServerCodegenModelTest.java index 66b9cd5e4734..66f4153bd9f4 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJaxrsResteasyServerCodegenModelTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJaxrsResteasyServerCodegenModelTest.java @@ -18,9 +18,8 @@ import java.io.File; import java.nio.file.Files; import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; +import static org.openapitools.codegen.TestUtils.collectToCaseInsensitiveOrderedCaseSensitiveKeyMap; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; @@ -86,7 +85,7 @@ public void testHandleDefaultValue_issue8535() throws Exception { DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("TestHeadersApi.java")) .assertMethod("headersTest") diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJerseyServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJerseyServerCodegenTest.java index 8e4bc1c9f9d3..8300122d507c 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJerseyServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/jaxrs/JavaJerseyServerCodegenTest.java @@ -29,6 +29,7 @@ import java.util.stream.Collectors; import static org.openapitools.codegen.TestUtils.assertFileContains; +import static org.openapitools.codegen.TestUtils.collectToCaseInsensitiveOrderedCaseSensitiveKeyMap; public class JavaJerseyServerCodegenTest extends JavaJaxrsBaseTest { @@ -232,7 +233,7 @@ public void testHandleDefaultValue_issue8535() throws Exception { DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("TestHeadersApi.java")) .assertMethod("headersTest") diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/microprofile/JavaMicroprofileServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/microprofile/JavaMicroprofileServerCodegenTest.java index 06cb837baa6d..369ebfa58623 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/microprofile/JavaMicroprofileServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/microprofile/JavaMicroprofileServerCodegenTest.java @@ -16,9 +16,8 @@ import java.nio.file.Files; import java.util.List; import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; +import static org.openapitools.codegen.TestUtils.collectToCaseInsensitiveOrderedCaseSensitiveKeyMap; import static org.openapitools.codegen.TestUtils.validateJavaSourceFiles; public class JavaMicroprofileServerCodegenTest { @@ -47,7 +46,7 @@ public void testEnumUnknownDefaultCaseDeserializationTrue_issue19674() throws Ex DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("Color.java")) .assertMethod("fromValue").bodyContainsLines("return UNKNOWN_DEFAULT_OPEN_API"); @@ -70,7 +69,7 @@ public void testEnumUnknownDefaultCaseDeserializationNotSet_issue19674() throws DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("Color.java")) .assertMethod("fromValue").bodyContainsLines("throw new IllegalArgumentException(\"Unexpected value '\" + text + \"'\");"); @@ -94,7 +93,7 @@ public void testMicroprofileCanHandleCookieParams() throws Exception { List files = new DefaultGenerator().opts(input).generate(); Map filesMap = files.stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); validateJavaSourceFiles(files); @@ -120,7 +119,7 @@ public void testMicroprofileCanHandleCookieParamsSingleRequest() throws Exceptio List files = new DefaultGenerator().opts(input).generate(); Map filesMap = files.stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); validateJavaSourceFiles(files); @@ -146,7 +145,7 @@ public void testGeneratedApiHasApiExceptionMapperRegisteredWhenUsingDefaultConfi List files = new DefaultGenerator().opts(input).generate(); Map filesMap = files.stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); validateJavaSourceFiles(files); @@ -174,7 +173,7 @@ public void testGeneratedApiDoesNotHaveApiExceptionMapperRegisteredWhenDisabling List files = new DefaultGenerator().opts(input).generate(); Map filesMap = files.stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); validateJavaSourceFiles(files); @@ -200,7 +199,7 @@ public void testGeneratedApiExceptionMapperHasProviderAnnotationWhenUsingDefault List files = new DefaultGenerator().opts(input).generate(); Map filesMap = files.stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); validateJavaSourceFiles(files); @@ -227,7 +226,7 @@ public void testGeneratedApiExceptionMapperDoesNotHaveProviderAnnotationWhenDisa List files = new DefaultGenerator().opts(input).generate(); Map filesMap = files.stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); validateJavaSourceFiles(files); diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java index ac819033d71e..2f1d9d04a887 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/java/spring/SpringCodegenTest.java @@ -53,7 +53,6 @@ import java.util.List; import java.util.Map; import java.util.function.Consumer; -import java.util.function.Function; import java.util.stream.Collectors; import static java.util.stream.Collectors.groupingBy; @@ -489,7 +488,7 @@ public void testJavaClientCorrectConstructorOrderForRequiredFields_issue15825() generator.setGenerateMetadata(false); // skip metadata and ↓ only generate models generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); Map files = generator.opts(clientOptInput).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("SubType.java")) .assertConstructor("TypeEnum", "SchemaVersion", "UUID", "Boolean", "Boolean", "SomeEnum") @@ -888,7 +887,7 @@ public void shouldAddParameterWithInHeaderWhenImplicitHeadersIsTrue_issue14418() DefaultGenerator generator = new DefaultGenerator(); generator.setGenerateMetadata(false); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("TestApi.java")) .isInterface() @@ -925,7 +924,7 @@ public void shouldApiNameSuffixForApiClassname() throws IOException { DefaultGenerator generator = new DefaultGenerator(); generator.setGenerateMetadata(false); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("PetController.java")) .isInterface(); @@ -959,7 +958,7 @@ public void shouldUseTagsForClassname() throws IOException { generator.setGenerateMetadata(false); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("PetTagApi.java")) .isInterface(); @@ -992,7 +991,7 @@ public void shouldNotUseTagsForClassname() throws IOException { DefaultGenerator generator = new DefaultGenerator(); generator.setGenerateMetadata(false); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("PetApi.java")) .isInterface(); @@ -1024,7 +1023,7 @@ public void shouldAddValidAnnotationIntoCollectionWhenBeanValidationIsEnabled_is generator.setGenerateMetadata(false); // skip metadata and ↓ only generate models generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("ResponseTest.java")) .isNormalClass() @@ -1084,7 +1083,7 @@ public void shouldAddValidAnnotationIntoCollectionWhenBeanValidationIsEnabled_is generator.setGenerateMetadata(false); // skip metadata and ↓ only generate models generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("Foo.java")) .isNormalClass() @@ -1369,7 +1368,7 @@ private void beanValidationForFormatEmail(boolean useBeanValidation, boolean per generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert javaFileAssert = JavaFileAssert.assertThat(files.get("PersonWithEmail.java")); if (useBeanValidation) @@ -1481,7 +1480,7 @@ public void shouldGenerateValidCodeForReactiveControllerWithoutParams_issue14907 generator.setGenerateMetadata(false); // skip metadata Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("ConsentControllerApi.java")) .assertMethod("readAgreements", "ServerWebExchange"); @@ -1513,7 +1512,7 @@ public void shouldGenerateValidCodeWithPaginated_reactive_issue15265() throws IO generator.setGenerateMetadata(false); // skip metadata and ↓ only generate models Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("ConsentControllerApi.java")) .assertMethod("paginated", "ServerWebExchange", "Pageable") @@ -1546,7 +1545,7 @@ public void shouldGenerateValidCodeWithPaginated_nonReactive_issue15265() throws generator.setGenerateMetadata(false); // skip metadata and ↓ only generate models Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("ConsentControllerApi.java")) .assertMethod("paginated", "Pageable") @@ -2108,7 +2107,7 @@ public void shouldGenerateExternalDocs() throws IOException { generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("PetApi.java")) .hasImports("io.swagger.v3.oas.annotations.ExternalDocumentation") @@ -2546,7 +2545,7 @@ public void shouldGenerateBeanValidationOnHeaderParams() throws IOException { generator.setGenerateMetadata(false); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("SomeMethodApi.java")) .assertMethod("methodWithValidation") @@ -2719,7 +2718,7 @@ public void shouldUseEqualsNullableForArrayWhenSetInConfig_issue13385() throws I generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("TestObject.java")) .assertMethod("equals") @@ -2751,7 +2750,7 @@ public void shouldNotUseEqualsNullableForArrayWhenNotSetInConfig_issue13385() th generator.setGenerateMetadata(false); // skip metadata and ↓ only generate models generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("TestObject.java")) .assertMethod("equals") @@ -2780,7 +2779,7 @@ public void useBeanValidationGenerateAnnotationsForRequestBody_issue13932() thro DefaultGenerator generator = new DefaultGenerator(); generator.setGenerateMetadata(false); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("AddApi.java")) .assertMethod("addPost") @@ -2811,7 +2810,7 @@ public void useBeanValidationGenerateAnnotationsForFormsRequestBody() throws IOE DefaultGenerator generator = new DefaultGenerator(); generator.setGenerateMetadata(false); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("AddApi.java")) .assertMethod("addPost") @@ -2851,7 +2850,7 @@ public void shouldHandleSeparatelyInterfaceAndModelAdditionalAnnotations() throw generator.setGenerateMetadata(false); // skip metadata and ↓ only generate models generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("PatchRequestInner.java")) .isInterface() @@ -2898,7 +2897,7 @@ public void contractWithResolvedInnerEnumContainsEnumConverter() throws IOExcept generator.setGenerateMetadata(false); Map files = generator.opts(clientOptInput).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("EnumConverterConfiguration.java")) .assertMethod("ponyTypeConverter"); @@ -2977,7 +2976,7 @@ private Map generateFromContract(String url, String library, Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("ResponseObjectWithDifferentFieldNames.java")) .assertProperty("normalPropertyName") @@ -3103,7 +3102,7 @@ public void testReturnTypeVoidWithResponseEntity_issue12341() throws IOException generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert javaFileAssert = JavaFileAssert.assertThat(files.get("TestApi.java")); javaFileAssert @@ -3148,7 +3147,7 @@ public void testReturnTypeVoidWithoutResponseEntityWithDelegate_issue12341() thr generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert javaFileAssert = JavaFileAssert.assertThat(files.get("TestApi.java")); javaFileAssert @@ -3195,7 +3194,7 @@ public void testReturnTypeVoidWithoutResponseEntityWithoutDelegateWithAsync_issu generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert javaFileAssert = JavaFileAssert.assertThat(files.get("TestApi.java")); javaFileAssert @@ -3234,7 +3233,7 @@ public void testReturnTypeVoidWithoutResponseEntityWithoutDelegateWithoutAsync_i generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert javaFileAssert = JavaFileAssert.assertThat(files.get("TestApi.java")); javaFileAssert @@ -3273,7 +3272,7 @@ public void testHasRestControllerDoesNotHaveController_issue15264() throws IOExc generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert javaFileAssert = JavaFileAssert.assertThat(files.get("TestApi.java")); javaFileAssert @@ -3311,7 +3310,7 @@ public void testDoesNotHasRestControllerHaveController_issue15264() throws IOExc generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert javaFileAssert = JavaFileAssert.assertThat(files.get("TestApi.java")); javaFileAssert @@ -3347,7 +3346,7 @@ public void testXPatternMessage_issue5857() throws IOException { generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert javaFileAssert = JavaFileAssert.assertThat(files.get("ObjTest.java")); javaFileAssert @@ -3391,7 +3390,7 @@ public void testXPatternMessage_issue18959() throws IOException { generator.setGenerateMetadata(false); // skip metadata generation Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert javaFileAssert = JavaFileAssert.assertThat(files.get("TestApi.java")); javaFileAssert @@ -3445,7 +3444,7 @@ public void testEnumCaseInsensitive_issue8084() throws IOException { generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert javaFileAssert = JavaFileAssert.assertThat(files.get("EnumTest.java")); javaFileAssert @@ -3478,7 +3477,7 @@ public void testEnumCaseSensitive_issue8084() throws IOException { generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert javaFileAssert = JavaFileAssert.assertThat(files.get("EnumTest.java")); javaFileAssert @@ -3512,7 +3511,7 @@ public void testHasOperationParameterExtraAnnotation_issue18224() throws IOExcep generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert javaFileAssert = JavaFileAssert.assertThat(files.get("TestApi.java")); javaFileAssert @@ -3557,7 +3556,7 @@ public void testModelHasParameterExtraAnnotations_issue19953() { generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert javaFileAssert = JavaFileAssert.assertThat(files.get("ObjTest.java")); javaFileAssert.assertProperty("field3") @@ -3592,7 +3591,7 @@ public void testHasOperationExtraAnnotation_issue15822() throws IOException { generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert javaFileAssert = JavaFileAssert.assertThat(files.get("TestApi.java")); javaFileAssert @@ -3627,7 +3626,7 @@ public void testHasOperationExtraAnnotation_issue12219() throws IOException { generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert javaFileAssert = JavaFileAssert.assertThat(files.get("TestApi.java")); javaFileAssert @@ -3664,7 +3663,7 @@ public void testHasOperationExtraAnnotation_issue12219_array() throws IOExceptio generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert javaFileAssert = JavaFileAssert.assertThat(files.get("TestApi.java")); javaFileAssert @@ -4754,7 +4753,7 @@ public void testSSEOperationSupport() throws Exception { generator.setGenerateMetadata(false); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); MapAssert.assertThatMap(files).isNotEmpty(); File api = files.get("PathApi.java"); @@ -5112,7 +5111,7 @@ public void optionalListShouldBeEmpty() throws IOException { generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("PetDto.java")) .fileContains("private List<@Valid TagDto> tags = new ArrayList<>();") @@ -5146,7 +5145,7 @@ public void testCollectionTypesWithDefaults_issue_18102() throws IOException { generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("PetDto.java")) .fileContains("private @Nullable List<@Valid TagDto> tags") @@ -5561,7 +5560,7 @@ public void testEnumWithImplements() { codegen.setOutputDir(output.toString()); Map files = new DefaultGenerator().opts(new ClientOptInput().openAPI(openAPI).config(codegen)) - .generate().stream().collect(Collectors.toMap(File::getName, Function.identity())); + .generate().stream().collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("Type.java")).fileContains("Type implements java.io.Serializable {"); } @@ -5706,7 +5705,7 @@ public void testCollectionTypesWithDefaults_issue_collection() throws IOExceptio DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("PetDto.java")) .fileContains("private @Nullable List<@Valid TagDto> tags;") @@ -5733,7 +5732,7 @@ public void testDefaultForRequiredNonNullableMap() throws IOException { DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert.assertThat(files.get("Pet.java")) .fileContains("private Map requiredNonNullableMap = new HashMap<>();"); @@ -5802,7 +5801,7 @@ public void testHasRestControllerDoesNotHaveController_issue21156() throws IOExc generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert javaFileAssert = JavaFileAssert.assertThat(files.get("TestApiDelegate.java")); javaFileAssert @@ -6174,7 +6173,7 @@ public void annotationLibraryDoesNotCauseImportConflictsInSpring() throws IOExce DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); File apiFile = files.get("Schema.java"); assertNotNull(apiFile); @@ -6208,7 +6207,7 @@ public void annotationLibraryDoesNotCauseImportConflictsInSpringWithAnnotationLi DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); File apiFile = files.get("Schema.java"); assertNotNull(apiFile); @@ -6244,7 +6243,7 @@ public void testExtensionsOnSchema_issue9183() throws IOException { generator.setGenerateMetadata(false); // skip metadata generation Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); JavaFileAssert javaFileAssert = JavaFileAssert.assertThat(files.get("TestApi.java")); javaFileAssert @@ -6289,7 +6288,7 @@ public void shouldAddNullableImportForArrayTypeModels() throws IOException { generator.setGeneratorPropertyDefault(CodegenConstants.MODEL_DOCS, "false"); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); // AnimalFarm is an array-type model with no properties (issue #22788) JavaFileAssert.assertThat(files.get("AnimalFarm.java")) diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/spring/KotlinSpringServerCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/spring/KotlinSpringServerCodegenTest.java index 353c5141c910..654c2b5e29e6 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/spring/KotlinSpringServerCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/kotlin/spring/KotlinSpringServerCodegenTest.java @@ -35,13 +35,10 @@ import java.util.List; import java.util.Map; import java.util.function.Consumer; -import java.util.function.Function; -import java.util.stream.Collectors; import java.util.stream.Stream; import static org.assertj.core.api.Assertions.assertThat; -import static org.openapitools.codegen.TestUtils.assertFileContains; -import static org.openapitools.codegen.TestUtils.assertFileNotContains; +import static org.openapitools.codegen.TestUtils.*; import static org.openapitools.codegen.languages.KotlinSpringServerCodegen.*; import static org.openapitools.codegen.languages.SpringCodegen.REACTIVE; import static org.openapitools.codegen.languages.SpringCodegen.SPRING_BOOT; @@ -803,7 +800,7 @@ public void useBeanValidationGenerateAnnotationsForRequestBody() throws IOExcept DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); assertFileContains( Paths.get(files.get("AddApi.kt").getAbsolutePath()), @@ -4153,7 +4150,7 @@ private Map generateFromContract( generatorPropertyDefaults.forEach(generator::setGeneratorPropertyDefault); return generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); } // ========== AUTO X-SPRING-PAGINATED TESTS ========== diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpClientCodegenTest.java index 991dd174515c..386e97cc2702 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpClientCodegenTest.java @@ -30,9 +30,10 @@ import java.nio.file.Files; import java.util.List; import java.util.Map; -import java.util.function.Function; import java.util.stream.Collectors; +import static org.openapitools.codegen.TestUtils.collectToCaseInsensitiveOrderedCaseSensitiveKeyMap; + public class PhpClientCodegenTest { protected PhpClientCodegen codegen; @@ -123,7 +124,7 @@ public void testEnumUnknownDefaultCaseDeserializationEnabled() throws Exception DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); List modelContent = Files .readAllLines(files.get("Pet.php").toPath()) @@ -151,7 +152,7 @@ public void testEnumUnknownDefaultCaseDeserializationDisabled() throws Exception DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); List modelContent = Files .readAllLines(files.get("Pet.php").toPath()) diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpNextgenClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpNextgenClientCodegenTest.java index 02f58f48f64e..3ee449890664 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpNextgenClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/php/PhpNextgenClientCodegenTest.java @@ -33,9 +33,10 @@ import java.nio.file.Files; import java.util.List; import java.util.Map; -import java.util.function.Function; import java.util.stream.Collectors; +import static org.openapitools.codegen.TestUtils.collectToCaseInsensitiveOrderedCaseSensitiveKeyMap; + public class PhpNextgenClientCodegenTest { protected PhpNextgenClientCodegen codegen; @@ -108,7 +109,7 @@ public void testEnumUnknownDefaultCaseDeserializationEnabled() throws Exception DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); List modelContent = Files .readAllLines(files.get("Pet.php").toPath()) @@ -136,7 +137,7 @@ public void testEnumUnknownDefaultCaseDeserializationDisabled() throws Exception DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); List modelContent = Files .readAllLines(files.get("Pet.php").toPath()) @@ -165,7 +166,7 @@ public void testDifferentResponseSchemasWithEmpty() throws IOException { DefaultGenerator generator = new DefaultGenerator(); Map files = generator.opts(input).generate().stream() - .collect(Collectors.toMap(File::getName, Function.identity())); + .collect(collectToCaseInsensitiveOrderedCaseSensitiveKeyMap()); List modelContent = Files .readAllLines(files.get("DefaultApi.php").toPath())