@@ -910,7 +910,10 @@ public void testOpenAPINormalizerSimplifyOneOfAnyOf31SpecForIssue18184() {
910910
911911 Schema schema2 = openAPI .getComponents ().getSchemas ().get ("Item" );
912912 assertEquals (((Schema ) schema2 .getProperties ().get ("my_enum" )).getAnyOf (), null );
913- assertEquals (((Schema ) schema2 .getProperties ().get ("my_enum" )).get$ref (), "#/components/schemas/MyEnum" );
913+ assertEquals (((Schema ) schema2 .getProperties ().get ("my_enum" )).getAllOf ().size (), 1 );
914+ assertEquals (((Schema ) schema2 .getProperties ().get ("my_enum" )).getNullable (), true );
915+ assertEquals (((Schema ) schema2 .getProperties ().get ("my_enum" )).get$ref (), null );
916+ assertEquals (((Schema ) ((Schema ) schema2 .getProperties ().get ("my_enum" )).getAllOf ().get (0 )).get$ref (), "#/components/schemas/MyEnum" );
914917 }
915918
916919 @ Test
@@ -1104,7 +1107,10 @@ public void testOpenAPINormalizerSimplifyOneOfAnyOf31Spec() {
11041107 Schema schema18 = openAPI .getComponents ().getSchemas ().get ("OneOfNullAndRef3" );
11051108 // original oneOf removed and simplified to just $ref (oneOf sub-schema) instead
11061109 assertEquals (schema18 .getOneOf (), null );
1107- assertEquals (schema18 .get$ref (), "#/components/schemas/Parent" );
1110+ assertEquals (schema18 .get$ref (), null );
1111+ assertEquals (schema18 .getNullable (), true );
1112+ assertEquals (((Schema ) schema18 .getAllOf ().get (0 )).get$ref (), "#/components/schemas/Parent" );
1113+
11081114
11091115 Schema schema20 = openAPI .getComponents ().getSchemas ().get ("ParentWithOneOfProperty" );
11101116 assertEquals (((Schema ) schema20 .getProperties ().get ("number" )).get$ref (), "#/components/schemas/Number" );
@@ -1184,6 +1190,24 @@ public void testOpenAPINormalizerProcessingAllOfSchema31Spec() {
11841190 assertEquals (((Schema ) schema2 .getProperties ().get ("property2" )).getAllOf (), null );
11851191 }
11861192
1193+ @ Test
1194+ public void testOpenAPINormalizerNormalizeReferenceSchema () {
1195+ // to test array schema processing in 3.1 spec
1196+ OpenAPI openAPI = TestUtils .parseSpec ("src/test/resources/3_1/unsupported_schema_test.yaml" );
1197+
1198+ Schema schema = openAPI .getComponents ().getSchemas ().get ("Dummy" );
1199+ assertEquals (((Schema ) schema .getProperties ().get ("property3" )).get$ref (), "#/components/schemas/RefSchema" );
1200+
1201+ Map <String , String > inputRules = Map .of ("NORMALIZE_31SPEC" , "true" );
1202+ OpenAPINormalizer openAPINormalizer = new OpenAPINormalizer (openAPI , inputRules );
1203+ openAPINormalizer .normalize ();
1204+
1205+ Schema schema2 = openAPI .getComponents ().getSchemas ().get ("Dummy" );
1206+ assertEquals (((Schema ) schema2 .getProperties ().get ("property3" )).getAllOf ().size (), 1 );
1207+ assertEquals (((Schema ) schema2 .getProperties ().get ("property3" )).getDescription (), "Override description in $ref schema" );
1208+ assertEquals (((Schema ) ((Schema ) schema2 .getProperties ().get ("property3" )).getAllOf ().get (0 )).get$ref (), "#/components/schemas/RefSchema" );
1209+ }
1210+
11871211 @ Test
11881212 public void testOpenAPINormalizerComponentsResponses31Spec () {
11891213 OpenAPI openAPI = TestUtils .parseSpec ("src/test/resources/3_1/common-parameters.yaml" );
0 commit comments