Skip to content

Commit

Permalink
adding changes refs #682
Browse files Browse the repository at this point in the history
  • Loading branch information
gracekarina committed Apr 22, 2018
1 parent db978f1 commit e6573c5
Show file tree
Hide file tree
Showing 4 changed files with 83 additions and 70 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,13 @@ public SwaggerParseResult readLocation(String url, List<AuthorizationValue> auth
}
result = readWithInfo(url,auth);



if (result.getOpenAPI() != null) {
String version = result.getOpenAPI().getOpenapi();
if (version != null && version.startsWith("3.0")) {
if (options != null) {
OpenAPIResolver resolver = new OpenAPIResolver(result.getOpenAPI(), auth, url);
OpenAPIResolver resolver = new OpenAPIResolver(result.getOpenAPI(), auth, processLocation(url));
if (options.isResolve()) {
result.setOpenAPI(resolver.resolve());
}
Expand Down Expand Up @@ -113,6 +115,21 @@ private ObjectMapper getRightMapper(String data) {
}
return mapper;
}

public String processLocation(String location){
try {
if (location.toLowerCase().startsWith("http")) {
return location;
}
return getClass().getClassLoader().getResource(location).toString();


}
catch (Exception e) {
LOGGER.warn("Exception while reading:", e);
return "unable to read location `" + location + "`" ;
}
}

public SwaggerParseResult readWithInfo(String location, List<AuthorizationValue> auths) {
String data;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public class FileReferenceTest {
public void testIssue306() {
ParseOptions options = new ParseOptions();
options.setResolve(true);
SwaggerParseResult result = new OpenAPIV3Parser().readLocation("./src/test/resources/nested-file-references/issue-306.yaml", null, options);
SwaggerParseResult result = new OpenAPIV3Parser().readLocation("nested-file-references/issue-306.yaml", null, options);
assertNotNull(result.getOpenAPI());

OpenAPI swagger = result.getOpenAPI();
Expand All @@ -42,7 +42,7 @@ public void testIssue306() {
public void testIssue308() {
ParseOptions options = new ParseOptions();
options.setResolve(true);
SwaggerParseResult result = new OpenAPIV3Parser().readLocation("./src/test/resources/nested-file-references/issue-308.yaml", null, options);
SwaggerParseResult result = new OpenAPIV3Parser().readLocation("nested-file-references/issue-308.yaml", null, options);
assertNotNull(result.getOpenAPI());

OpenAPI swagger = result.getOpenAPI();
Expand All @@ -55,7 +55,7 @@ public void testIssue308() {
public void testIssue310() {
ParseOptions options = new ParseOptions();
options.setResolve(true);
SwaggerParseResult result = new OpenAPIV3Parser().readLocation("./src/test/resources/nested-file-references/issue-310.yaml", null, options);
SwaggerParseResult result = new OpenAPIV3Parser().readLocation("nested-file-references/issue-310.yaml", null, options);
assertNotNull(result.getOpenAPI());

OpenAPI swagger = result.getOpenAPI();
Expand All @@ -68,7 +68,7 @@ public void testIssue310() {
public void testIssue312() {
ParseOptions options = new ParseOptions();
options.setResolve(true);
SwaggerParseResult result = new OpenAPIV3Parser().readLocation("./src/test/resources/nested-file-references/issue-312.yaml", null, options);
SwaggerParseResult result = new OpenAPIV3Parser().readLocation("nested-file-references/issue-312.yaml", null, options);
assertNotNull(result.getOpenAPI());

OpenAPI swagger = result.getOpenAPI();
Expand All @@ -86,7 +86,7 @@ public void testIssue312() {
public void testIssue314() {
ParseOptions options = new ParseOptions();
options.setResolve(true);
SwaggerParseResult result = new OpenAPIV3Parser().readLocation("./src/test/resources/nested-file-references/issue-314.yaml", null, options);
SwaggerParseResult result = new OpenAPIV3Parser().readLocation("nested-file-references/issue-314.yaml", null, options);
assertNotNull(result.getOpenAPI());

OpenAPI swagger = result.getOpenAPI();
Expand All @@ -106,7 +106,7 @@ public void testIssue314() {
public void testIssue316() {
ParseOptions options = new ParseOptions();
options.setResolve(true);
SwaggerParseResult result = new OpenAPIV3Parser().readLocation("./src/test/resources/nested-file-references/issue-316.yaml", null, options);
SwaggerParseResult result = new OpenAPIV3Parser().readLocation("nested-file-references/issue-316.yaml", null, options);
assertNotNull(result.getOpenAPI());

OpenAPI swagger = result.getOpenAPI();
Expand All @@ -130,7 +130,7 @@ public void testIssue316() {
public void testIssue323() {
ParseOptions options = new ParseOptions();
options.setResolve(true);
SwaggerParseResult result = new OpenAPIV3Parser().readLocation("./src/test/resources/nested-file-references/issue-323.yaml", null, options);
SwaggerParseResult result = new OpenAPIV3Parser().readLocation("nested-file-references/issue-323.yaml", null, options);
assertNotNull(result.getOpenAPI());

OpenAPI swagger = result.getOpenAPI();
Expand All @@ -145,7 +145,7 @@ public void testIssue323() {
public void testIssue289() {
ParseOptions options = new ParseOptions();
options.setResolve(true);
SwaggerParseResult result = new OpenAPIV3Parser().readLocation("./src/test/resources/issue-289.yaml", null, options);
SwaggerParseResult result = new OpenAPIV3Parser().readLocation("issue-289.yaml", null, options);
assertNotNull(result.getOpenAPI());

OpenAPI swagger = result.getOpenAPI();
Expand All @@ -156,7 +156,7 @@ public void testIssue289() {
public void testIssue336() {
ParseOptions options = new ParseOptions();
options.setResolve(true);
SwaggerParseResult result = new OpenAPIV3Parser().readLocation("./src/test/resources/nested-file-references/issue-336.json", null, options);
SwaggerParseResult result = new OpenAPIV3Parser().readLocation("nested-file-references/issue-336.json", null, options);
assertNotNull(result.getOpenAPI());

OpenAPI swagger = result.getOpenAPI();
Expand All @@ -167,7 +167,7 @@ public void testIssue336() {
public void testIssue340() {
ParseOptions options = new ParseOptions();
options.setResolve(true);
SwaggerParseResult result = new OpenAPIV3Parser().readLocation("./src/test/resources/nested-file-references/issue-340.json", null, options);
SwaggerParseResult result = new OpenAPIV3Parser().readLocation("nested-file-references/issue-340.json", null, options);
assertNotNull(result.getOpenAPI());

OpenAPI swagger = result.getOpenAPI();
Expand All @@ -178,14 +178,14 @@ public void testIssue340() {
public void testIssue304() {
ParseOptions options = new ParseOptions();
options.setResolve(true);
SwaggerParseResult result = new OpenAPIV3Parser().readLocation("./src/test/resources/nested-file-references/issue-304.json", null, options);
SwaggerParseResult result = new OpenAPIV3Parser().readLocation("nested-file-references/issue-304.json", null, options);
assertNotNull(result.getOpenAPI().getComponents().getSchemas());
}

@Test
public void testAllOfFlatAndNested() {
for (String path : Arrays.asList("./src/test/resources/allOf-properties-ext-ref/models/swagger.json",
"./src/test/resources/allOf-properties-ext-ref/swagger.json")) {
for (String path : Arrays.asList("allOf-properties-ext-ref/models/swagger.json",
"allOf-properties-ext-ref/swagger.json")) {
//ParseOptions options = new ParseOptions();
//options.setResolve(true);
OpenAPI swagger = new OpenAPIV3Parser().read(path);
Expand All @@ -203,7 +203,7 @@ public void testAllOfFlatAndNested() {
public void testIssue421() {
ParseOptions options = new ParseOptions();
options.setResolve(true);
SwaggerParseResult result = new OpenAPIV3Parser().readLocation("./src/test/resources/nested-file-references/issue-421.yaml", null, options);
SwaggerParseResult result = new OpenAPIV3Parser().readLocation("nested-file-references/issue-421.yaml", null, options);
assertNotNull(result.getOpenAPI());

OpenAPI swagger = result.getOpenAPI();
Expand Down Expand Up @@ -238,7 +238,7 @@ public void testIssue421() {
public void testRelativeRefIssue421() {
ParseOptions options = new ParseOptions();
options.setResolve(true);
SwaggerParseResult result = new OpenAPIV3Parser().readLocation("./src/test/resources/main.yaml", null, options);
SwaggerParseResult result = new OpenAPIV3Parser().readLocation("main.yaml", null, options);
assertNotNull(result.getOpenAPI());

OpenAPI swagger = result.getOpenAPI();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -590,7 +590,7 @@ public void resolveAllOfWithoutAggregatingParameters(@Injectable final List<Auth
options.setResolveCombinators(false);

// Testing components/schemas
OpenAPI openAPI = new OpenAPIV3Parser().readLocation("src/test/resources/composed.yaml",auths,options).getOpenAPI();
OpenAPI openAPI = new OpenAPIV3Parser().readLocation("composed.yaml",auths,options).getOpenAPI();

ComposedSchema allOf = (ComposedSchema) openAPI.getComponents().getSchemas().get("ExtendedAddress");
assertEquals(allOf.getAllOf().size(), 2);
Expand Down Expand Up @@ -620,7 +620,7 @@ public void resolveComposedReferenceAllOfSchema(@Injectable final List<Authoriza
options.setResolve(true);
options.setResolveFully(true);

OpenAPI openAPI = new OpenAPIV3Parser().readLocation("src/test/resources/composed.yaml",auths,options).getOpenAPI();
OpenAPI openAPI = new OpenAPIV3Parser().readLocation("composed.yaml",auths,options).getOpenAPI();


assertTrue(openAPI.getPaths().get("/withInvalidComposedModelArray").getPost().getRequestBody().getContent().get("application/json").getSchema() instanceof ArraySchema);
Expand All @@ -636,7 +636,7 @@ public void resolveComposedSchema(@Injectable final List<AuthorizationValue> aut
ParseOptions options = new ParseOptions();
options.setResolveCombinators(false);
options.setResolveFully(true);
OpenAPI openAPI = new OpenAPIV3Parser().readLocation("src/test/resources/oneof-anyof.yaml",auths,options).getOpenAPI();
OpenAPI openAPI = new OpenAPIV3Parser().readLocation("oneof-anyof.yaml",auths,options).getOpenAPI();


assertTrue(openAPI.getPaths().get("/mixed-array").getGet().getResponses().get("200").getContent().get("application/json").getSchema() instanceof ArraySchema);
Expand Down Expand Up @@ -667,7 +667,7 @@ public void referringSpecWithoutComponentsTag() throws Exception {
public void testRefNameConflicts() throws Exception {
ParseOptions options = new ParseOptions();
options.setResolveFully(true);
OpenAPI openAPI = new OpenAPIV3Parser().readLocation("/refs-name-conflict/a.yaml",null, options).getOpenAPI();
OpenAPI openAPI = new OpenAPIV3Parser().readLocation("refs-name-conflict/a.yaml",null, options).getOpenAPI();

assertEquals("local", ((Schema) openAPI.getPaths().get("/newPerson").getPost().getResponses().get("200").getContent().get("*/*").getSchema().getProperties().get("location")).getExample());
assertEquals("referred", ((Schema)openAPI.getPaths().get("/oldPerson").getPost().getResponses().get("200").getContent().get("*/*").getSchema().getProperties().get("location")).getExample());
Expand Down Expand Up @@ -710,7 +710,7 @@ public void testComposedSchemaAdjacent(@Injectable final List<AuthorizationValue
ParseOptions options = new ParseOptions();
options.setResolve(true);
options.setResolveFully(true);
OpenAPI openAPI = new OpenAPIV3Parser().read("src/test/resources/composedSchemaRef.yaml", auths, options);
OpenAPI openAPI = new OpenAPIV3Parser().read("composedSchemaRef.yaml", auths, options);

Assert.assertNotNull(openAPI);

Expand All @@ -731,7 +731,7 @@ public void testComposedSchemaAdjacentWithExamples(@Injectable final List<Author
ParseOptions options = new ParseOptions();
options.setResolve(true);
options.setResolveFully(true);
OpenAPI openAPI = new OpenAPIV3Parser().read("src/test/resources/anyOf_OneOf.yaml", auths, options);
OpenAPI openAPI = new OpenAPIV3Parser().read("anyOf_OneOf.yaml", auths, options);

Assert.assertNotNull(openAPI);

Expand Down
Loading

0 comments on commit e6573c5

Please sign in to comment.