Skip to content

Commit

Permalink
Merge pull request #1955 from dastoikov/master
Browse files Browse the repository at this point in the history
SpecFilter does not retain "deprecated":true properties of operations #1954
  • Loading branch information
fehguy committed Sep 27, 2016
2 parents 8bee04b + 28e5a2d commit 7e5f614
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -245,7 +245,8 @@ public Operation filterOperation(SwaggerSpecFilter filter, Operation op, ApiDesc
.produces(op.getProduces())
.tags(op.getTags())
.externalDocs(op.getExternalDocs())
.vendorExtensions(op.getVendorExtensions());
.vendorExtensions(op.getVendorExtensions())
.deprecated(op.isDeprecated());

List<Parameter> clonedParams = new ArrayList<Parameter>();
if (op.getParameters() != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -254,6 +254,29 @@ public void removeUnreferencedModelOverride() throws IOException {
assertNotNull(filtered.getDefinitions().get("RootModel"));
}

@Test(description = "Retain models referenced from additonalProperties")
public void retainModelsReferencesFromAdditionalProperties() throws IOException {
final Swagger swagger = getSwagger("specFiles/additionalpropsmodel.json");
final RemoveUnreferencedDefinitionsFilter remover = new RemoveUnreferencedDefinitionsFilter();
final Swagger filtered = new SpecFilter().filter(swagger, remover, null, null, null);

assertNotNull(filtered.getDefinitions().get("A"));
assertNotNull(filtered.getDefinitions().get("B"));
}

@Test(description = "Clone should retain any 'deperecated' flags present on operations")
public void cloneRetainDeperecatedFlags() throws IOException {
final Swagger swagger = getSwagger("specFiles/deprecatedoperationmodel.json");
final RemoveUnreferencedDefinitionsFilter remover = new RemoveUnreferencedDefinitionsFilter();
final Swagger filtered = new SpecFilter().filter(swagger, remover, null, null, null);

Operation operation = filtered.getPath("/test").getOperations().get(0);

Boolean deprectedFlag = operation.isDeprecated();
assertNotNull(deprectedFlag);
assertEquals(deprectedFlag, Boolean.TRUE);
}

@Test(description = "it should filter models where some fields have no properties")
public void filterNoPropertiesModels() throws IOException {
final String modelName = "Array";
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"swagger" : "2.0",
"tags" : [ {
"name" : "Test Api"
} ],
"paths" : {
"/test" : {
"get" : {
"tags" : [ "Test Api" ],
"operationId" : "getA",
"parameters" : [ ],
"responses" : {
"200" : {
"description" : "successful operation",
"schema" : {
"$ref" : "#/definitions/EmptyModel"
},
"headers" : { }
}
},
"deprecated" : true
}
}
},
"definitions" : {
"EmptyModel" : {
"type" : "object"
}
}
}

0 comments on commit 7e5f614

Please sign in to comment.