package io.swagger.servlet.extensions; import io.swagger.models.Operation; import io.swagger.models.SecurityRequirement; import io.swagger.servlet.ReaderContext; import org.testng.Assert; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import java.util.Collections; public class SecurityRequirementsTest extends BaseServletReaderExtensionTest { @DataProvider private Object[][] resourceWithAnnotations() { return new Object[][]{ {"testMethod1", new SecurityRequirement().requirement("api_auth", Collections.singletonList("api_auth_scope"))}, {"testMethod2", new SecurityRequirement().requirement("api_auth", Collections.singletonList("api_auth_scope"))}, {"testMethod3", new SecurityRequirement() .requirement("operation_auth", Collections.singletonList("operation_auth_scope"))}, {"testMethod4", new SecurityRequirement().requirement("api_auth", Collections.singletonList("api_auth_scope"))} }; } @DataProvider private Object[][] resourceWithoutApiAnnotation() { return new Object[][]{ {"testMethod1", null}, {"testMethod2", null}, {"testMethod3", new SecurityRequirement().requirement("operation_auth")}, {"testMethod4", null} }; } @Test(dataProvider = "resourceWithAnnotations") public void securityRequirementsTest1(String methodName, SecurityRequirement expected) throws NoSuchMethodException { final Operation operation = new Operation(); final ReaderContext context = createDefaultContext(); extension.applySecurityRequirements(context, operation, findMethod(context, methodName)); Assert.assertEquals(operation.getSecurity().get(0), expected.getRequirements()); } @Test(dataProvider = "resourceWithoutApiAnnotation") public void securityRequirementsTest2(String methodName, SecurityRequirement expected) throws NoSuchMethodException { final Operation operation = new Operation(); final ReaderContext context = createDefaultContextWithoutApi(); extension.applySecurityRequirements(context, operation, findMethod(context, methodName)); if (expected == null) { Assert.assertNull(operation.getSecurity()); } else { Assert.assertEquals(operation.getSecurity().get(0), expected.getRequirements()); } } }