From f2ffeed468b8742265c518cc0cf2721c03c75cb6 Mon Sep 17 00:00:00 2001 From: yonghanlin Date: Mon, 8 Dec 2025 04:47:39 -0600 Subject: [PATCH] fix: five nondeterministic tests --- .../codegen/ExampleGeneratorTest.java | 21 +++++++++++++----- .../codegen/java/JavaClientCodegenTest.java | 20 ++++++++++------- .../JetbrainsHttpClientClientCodegenTest.java | 22 +++++++++---------- 3 files changed, 38 insertions(+), 25 deletions(-) diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/ExampleGeneratorTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/ExampleGeneratorTest.java index 53f5562a4a74..2dcd51986560 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/ExampleGeneratorTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/ExampleGeneratorTest.java @@ -6,6 +6,9 @@ import java.util.*; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; + import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertNull; @@ -40,7 +43,7 @@ public void generateFromResponseSchemaWithPrimitiveType() { } @Test - public void generateFromResponseSchemaWithDateFormat() { + public void generateFromResponseSchemaWithDateFormat() throws Exception { OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/example_generator_test.yaml"); new InlineModelResolver().flatten(openAPI); @@ -62,9 +65,11 @@ public void generateFromResponseSchemaWithDateFormat() { mediaTypeKeys ); + ObjectMapper mapper = new ObjectMapper(); + assertEquals(1, examples.size()); assertEquals("application/json", examples.get(0).get("contentType")); - assertEquals(String.format(Locale.ROOT, "{%n \"date_with_example\" : \"2024-01-01\",%n \"date_without_example\" : \"2000-01-23\"%n}"), examples.get(0).get("example")); + assertEquals(mapper.readTree(String.format(Locale.ROOT, "{%n \"date_with_example\" : \"2024-01-01\",%n \"date_without_example\" : \"2000-01-23\"%n}")), mapper.readTree(examples.get(0).get("example"))); assertEquals("200", examples.get(0).get("statusCode")); } @@ -211,7 +216,7 @@ public void generateFromResponseSchemaWithModel() { } @Test - public void generateFromResponseSchemaWithAllOfComposedModel() { + public void generateFromResponseSchemaWithAllOfComposedModel() throws Exception{ OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/example_generator_test.yaml"); new InlineModelResolver().flatten(openAPI); @@ -233,14 +238,16 @@ public void generateFromResponseSchemaWithAllOfComposedModel() { mediaTypeKeys ); + ObjectMapper mapper = new ObjectMapper(); + assertEquals(1, examples.size()); assertEquals("application/json", examples.get(0).get("contentType")); - assertEquals(String.format(Locale.ROOT, "{%n \"example_schema_property_composed\" : \"example schema property value composed\",%n \"example_schema_property\" : \"example schema property value\"%n}"), examples.get(0).get("example")); + assertEquals(mapper.readTree(String.format(Locale.ROOT, "{%n \"example_schema_property_composed\" : \"example schema property value composed\",%n \"example_schema_property\" : \"example schema property value\"%n}")), mapper.readTree(examples.get(0).get("example"))); assertEquals("200", examples.get(0).get("statusCode")); } @Test - public void generateFromResponseSchemaWithAllOfChildComposedModel() { + public void generateFromResponseSchemaWithAllOfChildComposedModel() throws Exception { OpenAPI openAPI = TestUtils.parseFlattenSpec("src/test/resources/3_0/example_generator_test.yaml"); new InlineModelResolver().flatten(openAPI); @@ -262,9 +269,11 @@ public void generateFromResponseSchemaWithAllOfChildComposedModel() { mediaTypeKeys ); + ObjectMapper mapper = new ObjectMapper(); + assertEquals(1, examples.size()); assertEquals("application/json", examples.get(0).get("contentType")); - assertEquals(String.format(Locale.ROOT, "{%n \"example_schema_property_composed\" : \"example schema property value composed\",%n \"example_schema_property_composed_parent\" : \"example schema property value composed parent\",%n \"example_schema_property\" : \"example schema property value\"%n}"), examples.get(0).get("example")); + assertEquals(mapper.readTree(String.format(Locale.ROOT, "{%n \"example_schema_property_composed\" : \"example schema property value composed\",%n \"example_schema_property_composed_parent\" : \"example schema property value composed parent\",%n \"example_schema_property\" : \"example schema property value\"%n}")), mapper.readTree(examples.get(0).get("example"))); assertEquals("200", examples.get(0).get("statusCode")); } 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 1547e5054d9e..25403631be91 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 @@ -1251,29 +1251,33 @@ void testNotDuplicateOauth2FlowsScopes() { final List codegenOperations = paths.values().stream().flatMap(Collection::stream).collect(Collectors.toList()); final CodegenOperation getWithBasicAuthAndOauth = getByOperationId(codegenOperations, "getWithBasicAuthAndOauth"); - assertEquals(getWithBasicAuthAndOauth.authMethods.size(), 3); - assertEquals(getWithBasicAuthAndOauth.authMethods.get(0).name, "basic_auth"); + List sortedAuthMethods = new ArrayList<>(getWithBasicAuthAndOauth.authMethods); + sortedAuthMethods.sort(Comparator.comparing(am -> am.name)); + assertEquals(sortedAuthMethods.size(), 3); + assertEquals(sortedAuthMethods.get(0).name, "basic_auth"); - final Map passwordFlowScope = getWithBasicAuthAndOauth.authMethods.get(1).scopes.get(0); + final Map passwordFlowScope = sortedAuthMethods.get(1).scopes.get(0); assertEquals(passwordFlowScope.get("scope"), "something:create"); assertEquals(passwordFlowScope.get("description"), "create from password flow"); - final Map clientCredentialsFlow = getWithBasicAuthAndOauth.authMethods.get(2).scopes.get(0); + final Map clientCredentialsFlow = sortedAuthMethods.get(2).scopes.get(0); assertEquals(clientCredentialsFlow.get("scope"), "something:create"); assertEquals(clientCredentialsFlow.get("description"), "create from client credentials flow"); final CodegenOperation getWithOauthAuth = getByOperationId(codegenOperations, "getWithOauthAuth"); - assertEquals(getWithOauthAuth.authMethods.size(), 2); + List sortedOauthAuthMethods = new ArrayList<>(getWithOauthAuth.authMethods); + sortedOauthAuthMethods.sort(Comparator.comparing(am -> am.name)); + assertEquals(sortedOauthAuthMethods.size(), 2); - final Map passwordFlow = getWithOauthAuth.authMethods.get(0).scopes.get(0); + final Map passwordFlow = sortedOauthAuthMethods.get(0).scopes.get(0); assertEquals(passwordFlow.get("scope"), "something:create"); assertEquals(passwordFlow.get("description"), "create from password flow"); - final Map clientCredentialsCreateFlow = getWithOauthAuth.authMethods.get(1).scopes.get(0); + final Map clientCredentialsCreateFlow = sortedOauthAuthMethods.get(1).scopes.get(0); assertEquals(clientCredentialsCreateFlow.get("scope"), "something:create"); assertEquals(clientCredentialsCreateFlow.get("description"), "create from client credentials flow"); - final Map clientCredentialsProcessFlow = getWithOauthAuth.authMethods.get(1).scopes.get(1); + final Map clientCredentialsProcessFlow = sortedOauthAuthMethods.get(1).scopes.get(1); assertEquals(clientCredentialsProcessFlow.get("scope"), "something:process"); assertEquals(clientCredentialsProcessFlow.get("description"), "process from client credentials flow"); } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/jetbrains/http/client/JetbrainsHttpClientClientCodegenTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/jetbrains/http/client/JetbrainsHttpClientClientCodegenTest.java index d8fd326fd4e9..fe18d6892604 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/jetbrains/http/client/JetbrainsHttpClientClientCodegenTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/jetbrains/http/client/JetbrainsHttpClientClientCodegenTest.java @@ -387,19 +387,19 @@ public void testBasicGenerationManyAuths() throws IOException { "Accept: application/json\n" + "Authorization: Bearer {{bearerToken}}"); - TestUtils.assertFileContains(path, "### Get payment methods\n" + - "## Get payment methods\n" + - "GET https://checkout-test.adyen.com/v71/paymentMethods\n" + - "Accept: application/json\n" + - "Authorization: Basic: {{username-password}}\n" + + TestUtils.assertFileContains(path, "### Get payment methods", + "## Get payment methods", + "GET https://checkout-test.adyen.com/v71/paymentMethods", + "Accept: application/json", + "Authorization: Basic: {{username-password}}", "Authorization: Bearer {{bearerToken}}"); - TestUtils.assertFileContains(path, "### Make a payment\n" + - "## Example with a merchant account that doesn't exist\n" + - "POST https://checkout-test.adyen.com/v71/payments\n" + - "Content-Type: application/json\n" + - "Accept: application/json\n" + - "Cookie: X-API-Key={{cookieKey}}\n" + + TestUtils.assertFileContains(path, "### Make a payment", + "## Example with a merchant account that doesn't exist", + "POST https://checkout-test.adyen.com/v71/payments", + "Content-Type: application/json", + "Accept: application/json", + "Cookie: X-API-Key={{cookieKey}}", "Authorization: Bearer {{bearerToken}}"); }