@@ -158,6 +158,10 @@ public void testOpenAPINormalizerSimplifyOneOfAnyOf() {
158158 assertEquals (schema2 .getOneOf ().size (), 4 );
159159 assertNull (schema2 .getNullable ());
160160
161+ Schema schema2b = openAPI .getComponents ().getSchemas ().get ("OneOfTest2" );
162+ assertEquals (schema2b .getOneOf ().size (), 2 );
163+ assertNull (schema2b .getNullable ());
164+
161165 Schema schema5 = openAPI .getComponents ().getSchemas ().get ("OneOfNullableTest" );
162166 assertEquals (schema5 .getOneOf ().size (), 3 );
163167 assertNull (schema5 .getNullable ());
@@ -189,6 +193,11 @@ public void testOpenAPINormalizerSimplifyOneOfAnyOf() {
189193 assertTrue (schema4 instanceof IntegerSchema );
190194 assertTrue (schema4 .getNullable ());
191195
196+ Schema schema4b = openAPI .getComponents ().getSchemas ().get ("OneOfTest2" );
197+ assertNull (schema4b .getOneOf ());
198+ assertTrue (schema4b instanceof StringSchema );
199+ assertTrue (schema4b .getNullable ());
200+
192201 Schema schema6 = openAPI .getComponents ().getSchemas ().get ("OneOfNullableTest" );
193202 assertEquals (schema6 .getOneOf ().size (), 2 );
194203 assertTrue (schema6 .getNullable ());
@@ -532,7 +541,7 @@ public void testSetContainerToNullable() {
532541 @ Test
533542 public void testSetPrimitiveTypesToNullable () {
534543 // test `string|integer|number|boolean`
535- OpenAPI openAPI = TestUtils .parseSpec ("src/test/resources/3_0// setPrimitiveTypesToNullable_test.yaml" );
544+ OpenAPI openAPI = TestUtils .parseSpec ("src/test/resources/3_0/setPrimitiveTypesToNullable_test.yaml" );
536545
537546 Schema schema = openAPI .getComponents ().getSchemas ().get ("Person" );
538547 assertEquals (((Schema ) schema .getProperties ().get ("lastName" )).getNullable (), null );
@@ -552,7 +561,7 @@ public void testSetPrimitiveTypesToNullable() {
552561 assertEquals (((Schema ) schema2 .getProperties ().get ("first_boolean" )).getNullable (), true );
553562
554563 // test `number` only
555- OpenAPI openAPI2 = TestUtils .parseSpec ("src/test/resources/3_0// setPrimitiveTypesToNullable_test.yaml" );
564+ OpenAPI openAPI2 = TestUtils .parseSpec ("src/test/resources/3_0/setPrimitiveTypesToNullable_test.yaml" );
556565
557566 Schema schema3 = openAPI2 .getComponents ().getSchemas ().get ("Person" );
558567 assertEquals (((Schema ) schema3 .getProperties ().get ("lastName" )).getNullable (), null );
@@ -572,7 +581,7 @@ public void testSetPrimitiveTypesToNullable() {
572581 }
573582
574583 @ Test
575- public void testOpenAPINormalizerSimplifyOneOfAnyOf31Spec () {
584+ public void testOpenAPINormalizerSimplifyOneOfAnyOf31SpecForIssue18184 () {
576585 // to test the rule SIMPLIFY_ONEOF_ANYOF in 3.1 spec
577586 OpenAPI openAPI = TestUtils .parseSpec ("src/test/resources/3_1/issue_18184.yaml" );
578587 // test spec contains anyOf with a ref to enum and another scheme type is null
@@ -636,6 +645,77 @@ public void testOpenAPINormalizerProcessingArraySchema31Spec() {
636645 assertEquals (((Schema ) schema6 .getProperties ().get ("arrayOfStrings" )).getItems ().getTypes ().contains ("string" ), true );
637646 assertEquals (((Schema ) schema6 .getProperties ().get ("arrayOfStrings" )).getItems ().getType (), "string" );
638647 assertEquals (((Schema ) schema6 .getProperties ().get ("arrayOfStrings" )).getType (), "array" );
648+ }
649+
650+ @ Test
651+ public void testOpenAPINormalizerSimplifyOneOfAnyOf31Spec () {
652+ // to test the rule SIMPLIFY_ONEOF_ANYOF with 3.1 spec
653+ OpenAPI openAPI = TestUtils .parseSpec ("src/test/resources/3_1/simplifyOneOfAnyOf_test.yaml" );
654+
655+ Schema schema = openAPI .getComponents ().getSchemas ().get ("AnyOfTest" );
656+ assertEquals (schema .getAnyOf ().size (), 4 );
657+ assertNull (schema .getNullable ());
658+
659+ Schema schema2 = openAPI .getComponents ().getSchemas ().get ("OneOfTest" );
660+ assertEquals (schema2 .getOneOf ().size (), 4 );
661+ assertNull (schema2 .getNullable ());
662+
663+ Schema schema2b = openAPI .getComponents ().getSchemas ().get ("OneOfTest2" );
664+ assertEquals (schema2b .getOneOf ().size (), 2 );
665+ assertNull (schema2b .getNullable ());
666+
667+ Schema schema5 = openAPI .getComponents ().getSchemas ().get ("OneOfNullableTest" );
668+ assertEquals (schema5 .getOneOf ().size (), 3 );
669+ assertNull (schema5 .getNullable ());
670+
671+ Schema schema7 = openAPI .getComponents ().getSchemas ().get ("Parent" );
672+ assertEquals (((Schema ) schema7 .getProperties ().get ("number" )).getAnyOf ().size (), 1 );
673+
674+ Schema schema9 = openAPI .getComponents ().getSchemas ().get ("AnyOfStringArrayOfString" );
675+ assertEquals (schema9 .getAnyOf ().size (), 2 );
676+
677+ Schema schema11 = openAPI .getComponents ().getSchemas ().get ("AnyOfAnyType" );
678+ assertEquals (schema11 .getAnyOf ().size (), 6 );
679+
680+ Schema schema13 = openAPI .getComponents ().getSchemas ().get ("OneOfAnyType" );
681+ assertEquals (schema13 .getOneOf ().size (), 6 );
639682
683+ Map <String , String > options = new HashMap <>();
684+ options .put ("SIMPLIFY_ONEOF_ANYOF" , "true" );
685+ OpenAPINormalizer openAPINormalizer = new OpenAPINormalizer (openAPI , options );
686+ openAPINormalizer .normalize ();
687+
688+ Schema schema3 = openAPI .getComponents ().getSchemas ().get ("AnyOfTest" );
689+ assertNull (schema3 .getAnyOf ());
690+ assertEquals (ModelUtils .getType (schema3 ), "string" );
691+ assertTrue (schema3 .getNullable ());
692+
693+ Schema schema4 = openAPI .getComponents ().getSchemas ().get ("OneOfTest" );
694+ assertNull (schema4 .getOneOf ());
695+ assertEquals (ModelUtils .getType (schema4 ), "integer" );
696+ assertTrue (schema4 .getNullable ());
697+
698+ Schema schema4b = openAPI .getComponents ().getSchemas ().get ("OneOfTest2" );
699+ assertNull (schema4b .getOneOf ());
700+ assertEquals (ModelUtils .getType (schema4b ), "string" );
701+ assertTrue (schema4b .getNullable ());
702+
703+ Schema schema6 = openAPI .getComponents ().getSchemas ().get ("OneOfNullableTest" );
704+ assertEquals (schema6 .getOneOf ().size (), 2 );
705+ assertTrue (schema6 .getNullable ());
706+
707+ Schema schema8 = openAPI .getComponents ().getSchemas ().get ("Parent" );
708+ assertEquals (((Schema ) schema8 .getProperties ().get ("number" )).get$ref (), "#/components/schemas/Number" );
709+
710+ Schema schema10 = openAPI .getComponents ().getSchemas ().get ("AnyOfStringArrayOfString" );
711+ assertEquals (schema10 .getAnyOf ().size (), 2 );
712+
713+ Schema schema12 = openAPI .getComponents ().getSchemas ().get ("AnyOfAnyType" );
714+ assertEquals (schema12 .getAnyOf (), null );
715+ assertEquals (schema12 .getType (), null );
716+
717+ Schema schema14 = openAPI .getComponents ().getSchemas ().get ("OneOfAnyType" );
718+ assertEquals (schema14 .getOneOf (), null );
719+ assertEquals (schema14 .getType (), null );
640720 }
641721}
0 commit comments