blob: 23f14972d1f70d36931718c6bc2d3080f3bb6bf8 [file] [log] [blame]
package test.annotationtransformer;
import org.testng.Assert;
import org.testng.ITestResult;
import org.testng.TestListenerAdapter;
import org.testng.TestNG;
import org.testng.annotations.Test;
import org.testng.internal.annotations.IAnnotationTransformer;
import test.SimpleBaseTest;
import java.util.List;
public class AnnotationTransformerTest extends SimpleBaseTest {
/**
* Make sure that without a transformer in place, a class-level
* annotation invocationCount is correctly used.
*/
@Test
public void verifyAnnotationWithoutTransformer() {
TestNG tng = new TestNG();
tng.setVerbose(0);
tng.setTestClasses(new Class[] { AnnotationTransformerClassInvocationSampleTest.class});
TestListenerAdapter tla = new TestListenerAdapter();
tng.addListener(tla);
tng.run();
List passed = tla.getPassedTests();
Assert.assertEquals(passed.size(), 6);
}
/**
* Test a transformer on a method-level @Test
*/
@Test
public void verifyAnnotationTransformerMethod() {
TestNG tng = new TestNG();
tng.setVerbose(0);
tng.setAnnotationTransformer(new MyTransformer());
tng.setTestClasses(new Class[] { AnnotationTransformerSampleTest.class});
TestListenerAdapter tla = new TestListenerAdapter();
tng.addListener(tla);
tng.run();
List passed = tla.getPassedTests();
Assert.assertEquals(passed.size(), 15);
}
/**
* Without an annotation transformer, we should have zero
* passed tests and one failed test called "one".
*/
@Test
public void verifyAnnotationTransformerClass2() {
runTest(null, null, "one");
}
/**
* With an annotation transformer, we should have one passed
* test called "one" and zero failed tests.
*/
@Test
public void verifyAnnotationTransformerClass() {
runTest(new MyTimeOutTransformer(), "one", null);
}
private void runTest(IAnnotationTransformer transformer,
String passedName, String failedName)
{
TestNG tng = new TestNG();
tng.setVerbose(0);
if (transformer != null) {
tng.setAnnotationTransformer(transformer);
}
tng.setTestClasses(new Class[] { AnnotationTransformerClassSampleTest.class});
TestListenerAdapter tla = new TestListenerAdapter();
tng.addListener(tla);
tng.run();
List<ITestResult> results =
passedName != null ? tla.getPassedTests() : tla.getFailedTests();
String name = passedName != null ? passedName : failedName;
Assert.assertEquals(results.size(), 1);
Assert.assertEquals(name, results.get(0).getMethod().getMethodName());
}
@Test
public void verifyConfigurationTransformer() {
TestNG tng = new TestNG();
tng.setAnnotationTransformer(new ConfigurationTransformer());
tng.setVerbose(0);
tng.setTestClasses(new Class[] { ConfigurationSampleTest.class});
TestListenerAdapter tla = new TestListenerAdapter();
tng.addListener(tla);
tng.run();
Assert.assertEquals(ConfigurationSampleTest.getBefore(), "correct");
}
@Test
public void verifyDataProviderTransformer() {
TestNG tng = create();
tng.setAnnotationTransformer(new DataProviderTransformer());
tng.setTestClasses(new Class[] { AnnotationTransformerDataProviderSampleTest.class});
TestListenerAdapter tla = new TestListenerAdapter();
tng.addListener(tla);
tng.run();
Assert.assertEquals(tla.getPassedTests().size(), 1);
}
}