| 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); |
| } |
| |
| } |