1818import io .swagger .v3 .parser .core .models .AuthorizationValue ;
1919import io .swagger .v3 .parser .core .models .ParseOptions ;
2020import io .swagger .v3 .parser .core .models .SwaggerParseResult ;
21+ import io .swagger .v3 .parser .reference .ReferenceUtils ;
2122import io .swagger .v3 .parser .util .SchemaTypeUtil ;
2223import org .apache .commons .io .FileUtils ;
2324import org .hamcrest .CoreMatchers ;
@@ -184,7 +185,13 @@ public void testParametersAndResponsesAsNumbers() {
184185
185186 Assert .assertNotNull (result );
186187 Assert .assertNotNull (result .getOpenAPI ());
187- Assert .assertEquals (result .getOpenAPI ().getPaths ().get ("/api/deal/{dealId}" ).getGet ().getParameters ().get (0 ).getName (), "dealId" );
188+
189+ Parameter param = result .getOpenAPI ().getPaths ().get ("/api/deal/{dealId}" ).getGet ().getParameters ().get (0 );
190+ String refName = ReferenceUtils .getRefName (param .get$ref ());
191+ Components components = result .getOpenAPI ().getComponents ();
192+ Parameter refParameter = components .getParameters ().get (refName );
193+ Assert .assertEquals (refParameter .getName (), "dealId" );
194+
188195 Assert .assertEquals (result .getOpenAPI ().getPaths ().get ("/api/deal/{dealId}" ).getGet ().getResponses ().get ("200" ).getDescription (), "Success" );
189196 }
190197
@@ -1334,14 +1341,22 @@ public void testRemotePathItemIssue1103() {
13341341 OpenAPI result = new OpenAPIV3Parser ().read ("issue-1103/remote-pathItem-swagger.yaml" );
13351342 Assert .assertNotNull (result );
13361343 Assert .assertNotNull (result .getPaths ().get ("/Translation/{lang}" ));
1337- Assert .assertEquals (result .getPaths ().get ("/Translation/{lang}" ).getPut ().getParameters ().get (0 ).getName (), "lang" );
1344+ Parameter param = result .getPaths ().get ("/Translation/{lang}" ).getPut ().getParameters ().get (0 );
1345+ String refName = ReferenceUtils .getRefName (param .get$ref ());
1346+ Components components = result .getComponents ();
1347+ Parameter refParameter = components .getParameters ().get (refName );
1348+ Assert .assertEquals (refParameter .getName (), "lang" );
13381349 }
13391350
13401351 @ Test
13411352 public void testRemoteParameterIssue1103 () {
13421353 OpenAPI result = new OpenAPIV3Parser ().read ("issue-1103/remote-parameter-swagger.yaml" );
13431354 Assert .assertNotNull (result );
1344- Assert .assertEquals (result .getPaths ().get ("/Translation/{lang}" ).getPut ().getParameters ().get (0 ).getName (), "lang" );
1355+ Parameter param = result .getPaths ().get ("/Translation/{lang}" ).getPut ().getParameters ().get (0 );
1356+ String refName = ReferenceUtils .getRefName (param .get$ref ());
1357+ Components components = result .getComponents ();
1358+ Parameter refParameter = components .getParameters ().get (refName );
1359+ Assert .assertEquals (refParameter .getName (), "lang" );
13451360 }
13461361
13471362 @ Test
@@ -1974,7 +1989,7 @@ private OpenAPI doRelativeFileTest(String location) {
19741989 options .setResolveResponses (true );
19751990 SwaggerParseResult readResult = parser .readLocation (location , null , options );
19761991
1977- if (readResult .getMessages ().size () > 0 ) {
1992+ if (! readResult .getMessages ().isEmpty () ) {
19781993 Json .prettyPrint (readResult .getMessages ());
19791994 }
19801995 final OpenAPI openAPI = readResult .getOpenAPI ();
@@ -1986,10 +2001,16 @@ private OpenAPI doRelativeFileTest(String location) {
19862001
19872002 final Operation operation = path .getGet ();
19882003 final List <Parameter > operationParams = operation .getParameters ();
1989- assertParamDetails (operationParams , 0 , QueryParameter .class , "param1" , "query" );
1990- assertParamDetails (operationParams , 1 , HeaderParameter .class , "param2" , "header" );
1991- assertParamDetails (operationParams , 2 , PathParameter .class , "param3" , "path" );
1992- assertParamDetails (operationParams , 3 , HeaderParameter .class , "param4" , "header" );
2004+ List <Parameter > componentParameters = operationParams .stream ()
2005+ .map (param -> {
2006+ String refName = ReferenceUtils .getRefName (param .get$ref ());
2007+ return openAPI .getComponents ().getParameters ().get (refName );
2008+ }).collect (Collectors .toList ());
2009+
2010+ assertParamDetails (componentParameters , 0 , QueryParameter .class , "param1" , "query" );
2011+ assertParamDetails (componentParameters , 1 , HeaderParameter .class , "param2" , "header" );
2012+ assertParamDetails (componentParameters , 2 , PathParameter .class , "param3" , "path" );
2013+ assertParamDetails (componentParameters , 3 , HeaderParameter .class , "param4" , "header" );
19932014
19942015 final Map <String , ApiResponse > responsesMap = operation .getResponses ();
19952016
@@ -2264,9 +2285,10 @@ public void testIssue358() {
22642285 final OpenAPI openAPI = parser .read ("src/test/resources/issue_358.yaml" );
22652286 assertNotNull (openAPI );
22662287 List <Parameter > parms = openAPI .getPaths ().get ("/testApi" ).getGet ().getParameters ();
2267- assertEquals (1 , parms .size ());
2268- assertEquals ("pathParam" , parms .get (0 ).getName ());
2269- assertEquals ("string" , parms .get (0 ).getSchema ().getType ());
2288+ // FIXME nid 19.11.2025 : I do not think the behaviour is right. See spec > https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md#path-item-object
2289+ assertEquals (parms .size (), 1 );
2290+ assertEquals (parms .get (0 ).getName (), "pathParam" );
2291+ assertEquals (parms .get (0 ).getSchema ().getType (), "string" );
22702292 }
22712293
22722294 @ Test
@@ -2523,6 +2545,7 @@ public void shouldParseParameters() {
25232545 parseOptions .setResolveFully (true );
25242546 OpenAPI openAPI = new OpenAPIV3Parser ().read ("src/test/resources/issue_877.yaml" , null , parseOptions );
25252547 Parameter parameter = openAPI .getPaths ().get ("/adopt" ).getGet ().getParameters ().get (0 );
2548+ // FIXME nid 19.11.2025 : ResolveFully should inline here.
25262549 assertNotNull (parameter );
25272550 assertEquals (parameter .getIn (), "path" );
25282551 assertEquals (parameter .getName (), "playerId" );
@@ -2770,11 +2793,17 @@ public void testIssue1063() {
27702793
27712794 // then
27722795 OpenAPI api = result .getOpenAPI ();
2773- assertEquals (api .getPaths ().get ("/anPath" ).getGet ().getParameters ().get (0 ).getName (), "customer-id" );
2774- assertEquals (api .getPaths ().get ("/anPath" ).getGet ().getParameters ().get (1 ).getName (), "unit-id" );
2796+ Components components = api .getComponents ();
27752797
2776- assertThat (result .getMessages (), equalTo (emptyList ()));
2798+ Parameter customerIdParameter = api .getPaths ().get ("/anPath" ).getGet ().getParameters ().get (0 );
2799+ String customerIdRefName = ReferenceUtils .getRefName (customerIdParameter .get$ref ());
2800+ Assert .assertEquals (components .getParameters ().get (customerIdRefName ).getName (), "customer-id" );
27772801
2802+ Parameter unitIdParameter = api .getPaths ().get ("/anPath" ).getGet ().getParameters ().get (1 );
2803+ String unitIdRefName = ReferenceUtils .getRefName (unitIdParameter .get$ref ());
2804+ Assert .assertEquals (components .getParameters ().get (unitIdRefName ).getName (), "unit-id" );
2805+
2806+ assertThat (result .getMessages (), equalTo (emptyList ()));
27782807 }
27792808
27802809 @ Test
0 commit comments