package io.swagger.servlet.extensions;
import io.swagger.models.Operation;
import io.swagger.servlet.ReaderContext;
import org.testng.Assert;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import java.util.Arrays;
import java.util.List;
public class TagsTest extends BaseServletReaderExtensionTest {
@DataProvider
private Object[][] resourceWithAnnotations() {
return new Object[][]{
{"testMethod1", Arrays.asList("api_tag1", "api_tag2")},
{"testMethod2", Arrays.asList("api_tag1", "api_tag2")},
{"testMethod3", Arrays.asList("api_tag1", "api_tag2", "operation_tag1", "operation_tag2")},
{"testMethod4", Arrays.asList("api_tag1", "api_tag2")}
};
}
@DataProvider
private Object[][] resourceWithoutApiAnnotation() {
return new Object[][]{
{"testMethod1", null},
{"testMethod2", null},
{"testMethod3", Arrays.asList("operation_tag1", "operation_tag2")},
{"testMethod4", null}
};
}
@Test(dataProvider = "resourceWithAnnotations")
public void applyTagsTest1(String methodName, List<String> expected) throws NoSuchMethodException {
final Operation operation = new Operation();
final ReaderContext context = createDefaultContext();
extension.applyTags(context, operation, findMethod(context, methodName));
Assert.assertEquals(operation.getTags(), expected);
}
@Test(dataProvider = "resourceWithoutApiAnnotation")
public void applyTagsTest2(String methodName, List<String> expected) throws NoSuchMethodException {
final Operation operation = new Operation();
final ReaderContext context = createDefaultContextWithoutApi();
extension.applyTags(context, operation, findMethod(context, methodName));
Assert.assertEquals(operation.getTags(), expected);
}
}