From fbf1266cd6b1074f601e3f4207e72b85cd8eb915 Mon Sep 17 00:00:00 2001 From: Joscha Feth Date: Sun, 29 Sep 2024 21:35:37 +0100 Subject: [PATCH] test(OpenAPINormalizer): nullability normalization for 3.1 specs --- .../codegen/OpenAPINormalizerTest.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/OpenAPINormalizerTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/OpenAPINormalizerTest.java index 174536e84923..70c04397e233 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/OpenAPINormalizerTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/OpenAPINormalizerTest.java @@ -624,6 +624,24 @@ public void testOpenAPINormalizerProcessingArraySchema31Spec() { assertEquals(((Schema) schema6.getProperties().get("arrayOfStrings")).getType(), "array"); } + @Test + public void testOpenAPINormalizerProcessingArraySchema31NullabilitySpec() { + OpenAPI openAPI = TestUtils.parseSpec("src/test/resources/3_1/null-types-simple.yaml"); + Schema schema = openAPI.getComponents().getSchemas().get("WithNullableType"); + + assertNull(((Schema) schema.getProperties().get("arrayDataOrNull")).getNullable()); + assertNull(((Schema) schema.getProperties().get("stringDataOrNull")).getNullable()); + assertNull(((Schema) schema.getProperties().get("oneofOrNull")).getNullable()); + + Map inputRules = Map.of("NORMALIZE_31SPEC", "true"); + OpenAPINormalizer openAPINormalizer = new OpenAPINormalizer(openAPI, inputRules); + openAPINormalizer.normalize(); + + assertTrue(((Schema) schema.getProperties().get("arrayDataOrNull")).getNullable()); + assertTrue(((Schema) schema.getProperties().get("stringDataOrNull")).getNullable()); + assertTrue(((Schema) schema.getProperties().get("oneofOrNull")).getNullable()); + } + @Test public void testOpenAPINormalizerSimplifyOneOfAnyOf31Spec() { // to test the rule SIMPLIFY_ONEOF_ANYOF with 3.1 spec