This is an automated email from the git hooks/post-receive script. eugene-guest pushed a commit to annotated tag OpenBSD in repository testng.
commit a21c2f6b471c550402a4db5abcddb11bcc3dba5d Author: miheys <[email protected]> Date: Wed Oct 8 18:50:11 2014 +0300 Suite Listener is registered twice (#557) --- src/main/java/org/testng/SuiteRunner.java | 6 ++- src/main/java/org/testng/TestNG.java | 2 +- .../SuiteAndConfigurationListenerTest.java | 58 ++++++++++++++++++++++ src/test/resources/testng.xml | 1 + 4 files changed, 65 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/testng/SuiteRunner.java b/src/main/java/org/testng/SuiteRunner.java index d1fa95c..94d78d4 100644 --- a/src/main/java/org/testng/SuiteRunner.java +++ b/src/main/java/org/testng/SuiteRunner.java @@ -334,6 +334,10 @@ public class SuiteRunner implements ISuite, Serializable, IInvokedMethodListener m_reporters.add(listener); } + void addConfigurationListener(IConfigurationListener listener) { + m_configuration.addConfigurationListener(listener); + } + public List<IReporter> getReporters() { return m_reporters; } @@ -405,7 +409,7 @@ public class SuiteRunner implements ISuite, Serializable, IInvokedMethodListener addReporter((IReporter) listener); } if (listener instanceof IConfigurationListener) { - m_configuration.addConfigurationListener((IConfigurationListener) listener); + addConfigurationListener((IConfigurationListener) listener); } } diff --git a/src/main/java/org/testng/TestNG.java b/src/main/java/org/testng/TestNG.java index 35844c1..442590a 100644 --- a/src/main/java/org/testng/TestNG.java +++ b/src/main/java/org/testng/TestNG.java @@ -1313,7 +1313,7 @@ public class TestNG { } for (IConfigurationListener cl : m_configuration.getConfigurationListeners()) { - result.addListener(cl); + result.addConfigurationListener(cl); } return result; diff --git a/src/test/java/test/listeners/SuiteAndConfigurationListenerTest.java b/src/test/java/test/listeners/SuiteAndConfigurationListenerTest.java new file mode 100644 index 0000000..f4130aa --- /dev/null +++ b/src/test/java/test/listeners/SuiteAndConfigurationListenerTest.java @@ -0,0 +1,58 @@ +package test.listeners; + +import java.util.concurrent.atomic.AtomicInteger; + +import org.testng.Assert; +import org.testng.IConfigurationListener; +import org.testng.ISuite; +import org.testng.ISuiteListener; +import org.testng.ITestResult; +import org.testng.annotations.Listeners; +import org.testng.annotations.Test; + +import test.listeners.SuiteAndConfigurationListenerTest.MyListener; + +/** + * Check that if a listener implements IConfigurationListener additionally to + * ISuiteListener, ISuiteListener gets invoked exactly once. + * + * @author Mihails Volkovs + */ +@Listeners(MyListener.class) +public class SuiteAndConfigurationListenerTest { + public static class MyListener implements ISuiteListener, IConfigurationListener { + + private static volatile AtomicInteger started = new AtomicInteger(0); + + public MyListener() { + } + + @Override + public void onStart(ISuite suite) { + started.incrementAndGet(); + } + + @Override + public void onFinish(ISuite suite) { + } + + @Override + public void onConfigurationSuccess(ITestResult itr) { + } + + @Override + public void onConfigurationFailure(ITestResult itr) { + } + + @Override + public void onConfigurationSkip(ITestResult itr) { + } + + } + + @Test + public void bothListenersShouldRun() { + Assert.assertEquals(MyListener.started.get(), 1, "ISuiteListener was not invoked exactly once:"); + } + +} diff --git a/src/test/resources/testng.xml b/src/test/resources/testng.xml index ca8b566..9794953 100644 --- a/src/test/resources/testng.xml +++ b/src/test/resources/testng.xml @@ -143,6 +143,7 @@ <class name="test.listeners.ResultEndMillisTest" /> <class name="test.listeners.ListenerTest"/> <class name="test.listeners.SuiteAndInvokedMethodListenerTest" /> + <class name="test.listeners.SuiteAndConfigurationListenerTest" /> <class name="test.listeners.ListenerInXmlTest" /> <class name="test.listeners.ExecutionListenerTest" /> <class name="test.listeners.ConfigurationListenerTest" /> -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/testng.git _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

