@@ -158,6 +158,10 @@ public void testOpenAPINormalizerSimplifyOneOfAnyOf() {
158
158
assertEquals (schema2 .getOneOf ().size (), 4 );
159
159
assertNull (schema2 .getNullable ());
160
160
161
+ Schema schema2b = openAPI .getComponents ().getSchemas ().get ("OneOfTest2" );
162
+ assertEquals (schema2b .getOneOf ().size (), 2 );
163
+ assertNull (schema2b .getNullable ());
164
+
161
165
Schema schema5 = openAPI .getComponents ().getSchemas ().get ("OneOfNullableTest" );
162
166
assertEquals (schema5 .getOneOf ().size (), 3 );
163
167
assertNull (schema5 .getNullable ());
@@ -189,6 +193,11 @@ public void testOpenAPINormalizerSimplifyOneOfAnyOf() {
189
193
assertTrue (schema4 instanceof IntegerSchema );
190
194
assertTrue (schema4 .getNullable ());
191
195
196
+ Schema schema4b = openAPI .getComponents ().getSchemas ().get ("OneOfTest2" );
197
+ assertNull (schema4b .getOneOf ());
198
+ assertTrue (schema4b instanceof StringSchema );
199
+ assertTrue (schema4b .getNullable ());
200
+
192
201
Schema schema6 = openAPI .getComponents ().getSchemas ().get ("OneOfNullableTest" );
193
202
assertEquals (schema6 .getOneOf ().size (), 2 );
194
203
assertTrue (schema6 .getNullable ());
@@ -532,7 +541,7 @@ public void testSetContainerToNullable() {
532
541
@ Test
533
542
public void testSetPrimitiveTypesToNullable () {
534
543
// 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" );
536
545
537
546
Schema schema = openAPI .getComponents ().getSchemas ().get ("Person" );
538
547
assertEquals (((Schema ) schema .getProperties ().get ("lastName" )).getNullable (), null );
@@ -552,7 +561,7 @@ public void testSetPrimitiveTypesToNullable() {
552
561
assertEquals (((Schema ) schema2 .getProperties ().get ("first_boolean" )).getNullable (), true );
553
562
554
563
// 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" );
556
565
557
566
Schema schema3 = openAPI2 .getComponents ().getSchemas ().get ("Person" );
558
567
assertEquals (((Schema ) schema3 .getProperties ().get ("lastName" )).getNullable (), null );
@@ -572,7 +581,7 @@ public void testSetPrimitiveTypesToNullable() {
572
581
}
573
582
574
583
@ Test
575
- public void testOpenAPINormalizerSimplifyOneOfAnyOf31Spec () {
584
+ public void testOpenAPINormalizerSimplifyOneOfAnyOf31SpecForIssue18184 () {
576
585
// to test the rule SIMPLIFY_ONEOF_ANYOF in 3.1 spec
577
586
OpenAPI openAPI = TestUtils .parseSpec ("src/test/resources/3_1/issue_18184.yaml" );
578
587
// test spec contains anyOf with a ref to enum and another scheme type is null
@@ -636,6 +645,77 @@ public void testOpenAPINormalizerProcessingArraySchema31Spec() {
636
645
assertEquals (((Schema ) schema6 .getProperties ().get ("arrayOfStrings" )).getItems ().getTypes ().contains ("string" ), true );
637
646
assertEquals (((Schema ) schema6 .getProperties ().get ("arrayOfStrings" )).getItems ().getType (), "string" );
638
647
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 );
639
682
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 );
640
720
}
641
721
}
0 commit comments