Skip to content

Commit 7249459

Browse files
committed
feat (Normalizer): Reset from Normalizer with 3.0 only. Fix tests
1 parent 2eef15c commit 7249459

3 files changed

Lines changed: 11 additions & 3 deletions

File tree

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1510,7 +1510,13 @@ protected Schema processSimplifyOneOf(Schema schema) {
15101510
}
15111511

15121512
schema = simplifyOneOfAnyOfWithOnlyOneNonNullSubSchema(openAPI, schema, oneOfSchemas);
1513-
1513+
if (ModelUtils.isIntegerSchema(schema) || ModelUtils.isNumberSchema(schema) || ModelUtils.isStringSchema(schema)) {
1514+
if (schema.getSpecVersion().equals(SpecVersion.V30)) {
1515+
schema.setOneOf(null);
1516+
} //else {
1517+
// TODO convert oneOf const/deprecated to enum
1518+
// }
1519+
}
15141520
}
15151521

15161522
return schema;

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
@@ -1101,8 +1101,9 @@ public void testOpenAPINormalizerSimplifyOneOfAnyOf31Spec() {
11011101
assertEquals(schema14.getType(), null);
11021102

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

11071108
Schema schema18 = openAPI.getComponents().getSchemas().get("OneOfNullAndRef3");
11081109
// 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)