Skip to content

Commit 905b930

Browse files
authored
fix #22571 (OpenAPINormalizer): Removed reset of OAS content (#22573)
* fix (OpenAPINormalizer): Removed reset of OAS content * feat (Normalizer): Reset from Normalizer with 3.0 only. Fix tests
1 parent 8fcb2e0 commit 905b930

3 files changed

Lines changed: 9 additions & 5 deletions

File tree

modules/openapi-generator/src/main/java/org/openapitools/codegen/OpenAPINormalizer.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1557,10 +1557,12 @@ protected Schema processSimplifyOneOf(Schema schema) {
15571557
}
15581558

15591559
schema = simplifyOneOfAnyOfWithOnlyOneNonNullSubSchema(openAPI, schema, oneOfSchemas);
1560-
15611560
if (ModelUtils.isIntegerSchema(schema) || ModelUtils.isNumberSchema(schema) || ModelUtils.isStringSchema(schema)) {
1562-
// TODO convert oneOf const to enum
1563-
schema.setOneOf(null);
1561+
if (schema.getSpecVersion().equals(SpecVersion.V30)) {
1562+
schema.setOneOf(null);
1563+
} //else {
1564+
// TODO convert oneOf const/deprecated to enum
1565+
// }
15641566
}
15651567
}
15661568

modules/openapi-generator/src/test/java/org/openapitools/codegen/OpenAPINormalizerTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1237,8 +1237,9 @@ public void testOpenAPINormalizerSimplifyOneOfAnyOf31Spec() {
12371237
assertEquals(schema14.getType(), null);
12381238

12391239
Schema schema16 = openAPI.getComponents().getSchemas().get("TypeIntegerWithOneOf");
1240-
// oneOf should have been removed as the schema is essentially a primitive type
1241-
assertEquals(schema16.getOneOf(), null);
1240+
assertEquals(schema16.getOneOf().size(),3);
1241+
assertEquals(((Schema) schema16.getOneOf().get(0)).getConst(), 1);
1242+
assertEquals(((Schema) schema16.getOneOf().get(0)).getDeprecated(), true);
12421243

12431244
Schema schema18 = openAPI.getComponents().getSchemas().get("OneOfNullAndRef3");
12441245
// original oneOf removed and simplified to just $ref (oneOf sub-schema) instead

modules/openapi-generator/src/test/resources/3_1/simplifyOneOfAnyOf_test.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ components:
130130
- title: ITEM A
131131
description: This permission is for item A.
132132
const: 1
133+
deprecated: true
133134
- title: ITEM B
134135
description: This permission is for item B.
135136
const: 2

0 commit comments

Comments
 (0)