b/162682119 Send OpenApiSpec SecurityRequirements to TraversalHelper Change-Id: Ied46d0b000395ff22003c735b6788dd09eeecb1f
diff --git a/oas-core/src/main/java/com/apigee/security/oas/extendedvalidator/OpenApiSpecificationTraversal.java b/oas-core/src/main/java/com/apigee/security/oas/extendedvalidator/OpenApiSpecificationTraversal.java index 07b547f..df3a15a 100644 --- a/oas-core/src/main/java/com/apigee/security/oas/extendedvalidator/OpenApiSpecificationTraversal.java +++ b/oas-core/src/main/java/com/apigee/security/oas/extendedvalidator/OpenApiSpecificationTraversal.java
@@ -31,7 +31,8 @@ traversalHelper.sendServerTraversals(toImmutableList(openApiSchemaObj.getServers())); traversalHelper.sendTagTraversals(toImmutableList(openApiSchemaObj.getTags())); traversalHelper.sendPathTraversals(toImmutableMap(openApiSchemaObj.getPaths())); - // TODO(b/162682119): Send OpenApiSpecification SecurityRequirements to TraversalHelper. + traversalHelper.sendSecurityRequirementTraversals( + toImmutableList(openApiSchemaObj.getSecurityRequirements())); // TODO(b/162677159): Send Components traversal. } }
diff --git a/oas-core/src/test/java/com/apigee/security/oas/extendedvalidator/OpenApiSpecificationTraversalTest.java b/oas-core/src/test/java/com/apigee/security/oas/extendedvalidator/OpenApiSpecificationTraversalTest.java index efe1ae1..1620e6a 100644 --- a/oas-core/src/test/java/com/apigee/security/oas/extendedvalidator/OpenApiSpecificationTraversalTest.java +++ b/oas-core/src/test/java/com/apigee/security/oas/extendedvalidator/OpenApiSpecificationTraversalTest.java
@@ -20,6 +20,7 @@ import org.openapi4j.parser.model.v3.Info; import org.openapi4j.parser.model.v3.OpenApi3; import org.openapi4j.parser.model.v3.Path; +import org.openapi4j.parser.model.v3.SecurityRequirement; import org.openapi4j.parser.model.v3.Server; import org.openapi4j.parser.model.v3.Tag; @@ -42,6 +43,9 @@ private final ImmutableMap<String, Path> paths = ImmutableMap.of("one", new Path(), "two", new Path(), "three", new Path()); + private final ImmutableList<SecurityRequirement> securityRequirements = + ImmutableList.of( + new SecurityRequirement(), new SecurityRequirement(), new SecurityRequirement()); private OpenApiSpecificationTraversal openApiSpecificationTraversal; @@ -57,6 +61,7 @@ when(openApiSpec.getInfo()).thenReturn(info); when(openApiSpec.getExternalDocs()).thenReturn(externalDocs); when(openApiSpec.getPaths()).thenReturn(paths); + when(openApiSpec.getSecurityRequirements()).thenReturn(securityRequirements); when(traversalHelperFactory.create(any(ImmutableList.class))).thenReturn(traversalHelper); } @@ -92,6 +97,22 @@ } @Test + public void traverse_sendsSecurityRequirementsToTraversalHelper() { + openApiSpecificationTraversal.traverse(); + + verify(traversalHelper).sendSecurityRequirementTraversals(securityRequirements); + } + + @Test + public void traverse_nullSecurityRequirementsMember_doesNotFail() { + when(openApiSpec.getSecurityRequirements()).thenReturn(null); + + openApiSpecificationTraversal.traverse(); + + verify(traversalHelper, atLeastOnce()).sendSecurityRequirementTraversals(any()); + } + + @Test public void traverse_sendsServersToTraversalHelper() { openApiSpecificationTraversal.traverse();