Skip to content

Commit d2e6b3a

Browse files
authored
Merge pull request #1977 from swagger-api/revert-1956-bugfix-1955
Revert "Bugfix 1955 Schema refs of array parameters are not resolved for renamed schema components"
2 parents 5108367 + 0110632 commit d2e6b3a

File tree

6 files changed

+6
-126
lines changed

6 files changed

+6
-126
lines changed

modules/swagger-parser-v3/src/main/java/io/swagger/v3/parser/processors/PathsProcessor.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ else if(model.getProperties() != null) {
245245
for(String key : properties.keySet()) {
246246
Schema property = properties.get(key);
247247
if (property != null) {
248-
updateRefs(property, "");
248+
updateRefs(property, pathRef);
249249
}
250250
}
251251
}
@@ -254,22 +254,22 @@ else if(model instanceof ComposedSchema) {
254254
ComposedSchema composedSchema = (ComposedSchema) model;
255255
if (composedSchema.getAllOf() != null) {
256256
for (Schema innerModel : composedSchema.getAllOf()) {
257-
updateRefs(innerModel, "");
257+
updateRefs(innerModel, pathRef);
258258
}
259259
}if (composedSchema.getAnyOf() != null) {
260260
for(Schema innerModel : composedSchema.getAnyOf()) {
261-
updateRefs(innerModel, "");
261+
updateRefs(innerModel, pathRef);
262262
}
263263
}if (composedSchema.getOneOf() != null) {
264264
for (Schema innerModel : composedSchema.getOneOf()) {
265-
updateRefs(innerModel, "");
265+
updateRefs(innerModel, pathRef);
266266
}
267267
}
268268
}
269269
else if(model instanceof ArraySchema) {
270270
ArraySchema arraySchema = (ArraySchema) model;
271271
if(arraySchema.getItems() != null) {
272-
updateRefs(arraySchema.getItems(), "");
272+
updateRefs(arraySchema.getItems(), pathRef);
273273
}
274274
}
275275
}

modules/swagger-parser-v3/src/test/java/io/swagger/v3/parser/processors/PathsProcessorTest.java

Lines changed: 1 addition & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,13 @@
44
import io.swagger.v3.oas.models.Operation;
55
import io.swagger.v3.oas.models.PathItem;
66
import io.swagger.v3.oas.models.PathItem.HttpMethod;
7-
import io.swagger.v3.oas.models.media.Schema;
8-
import io.swagger.v3.oas.models.parameters.Parameter;
97
import io.swagger.v3.parser.OpenAPIV3Parser;
10-
import io.swagger.v3.parser.core.models.ParseOptions;
11-
import io.swagger.v3.parser.core.models.SwaggerParseResult;
128
import org.testng.annotations.Test;
139

14-
import java.net.URL;
1510
import java.util.Map.Entry;
16-
import java.util.Objects;
1711

1812
import static java.lang.String.format;
1913
import static org.testng.Assert.assertFalse;
20-
import static org.testng.Assert.assertTrue;
2114

2215
public class PathsProcessorTest {
2316

@@ -49,36 +42,6 @@ public void testProcessPaths_parameters_refOperationLevelDefinition() {
4942
assertOperationsHasParameters(openAPI, "/ref/test/{id}/operationlevelparam");
5043
}
5144

52-
@Test
53-
public void testProcessPaths_refsToRenamedSchemasResolved() {
54-
URL mergeSpecLocation = getClass().getClassLoader().getResource("issue-1955/merged_spec12.yaml");
55-
Objects.requireNonNull(mergeSpecLocation);
56-
ParseOptions parseOptions = new ParseOptions();
57-
parseOptions.setResolve(true);
58-
59-
SwaggerParseResult swaggerParseResult = new OpenAPIV3Parser().readLocation(mergeSpecLocation.toString(), null, parseOptions);
60-
61-
swaggerParseResult.getOpenAPI()
62-
.getPaths().values().stream()
63-
.flatMap(path -> path.readOperationsMap().values().stream())
64-
.flatMap(operation -> operation.getParameters().stream())
65-
.map(Parameter::getSchema)
66-
.forEach(this::assertSchemaNoExternalRefs);
67-
}
68-
69-
private void assertSchemaNoExternalRefs(Schema<?> schema) {
70-
if (schema.get$ref() != null) {
71-
assertSchemaRefInternal(schema.get$ref());
72-
}
73-
if (schema.getItems() != null && schema.getItems().get$ref() != null) {
74-
assertSchemaRefInternal(schema.getItems().get$ref());
75-
}
76-
}
77-
78-
private void assertSchemaRefInternal(String ref) {
79-
assertTrue(ref.startsWith("#"));
80-
}
81-
8245
private void assertOperationsHasParameters(OpenAPI openAPI, String path) {
8346
PathItem pathItem = openAPI.getPaths().get(path);
8447

@@ -91,4 +54,4 @@ private void assertOperationsHasParameters(OpenAPI openAPI, String path) {
9154
assertFalse(operation.getParameters() == null || operation.getParameters().isEmpty(), format("Expected parameters on %s operation for %s but found none", httpMethod, path));
9255
}
9356
}
94-
}
57+
}

modules/swagger-parser-v3/src/test/resources/issue-1955/merged_spec12.yaml

Lines changed: 0 additions & 14 deletions
This file was deleted.

modules/swagger-parser-v3/src/test/resources/issue-1955/spec1.yaml

Lines changed: 0 additions & 32 deletions
This file was deleted.

modules/swagger-parser-v3/src/test/resources/issue-1955/spec2.yaml

Lines changed: 0 additions & 32 deletions
This file was deleted.

pom.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,6 @@
7979
<artifactId>surefire-junit4</artifactId>
8080
<version>3.0.0</version>
8181
</dependency>
82-
<dependency>
83-
<groupId>org.testng</groupId>
84-
<artifactId>testng</artifactId>
85-
<version>${testng-version}</version>
86-
</dependency>
8782
</dependencies>
8883
<configuration>
8984
<testNGArtifactName>none:none</testNGArtifactName>

0 commit comments

Comments
 (0)