Merge "b/161829123 Create extension scope validator with validation for three extensions"
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();