package org.testng.remote.strprotocol; import org.testng.ISuite; import org.testng.ITestContext; import org.testng.ITestListener; import org.testng.ITestResult; import org.testng.internal.IResultListener; import org.testng.xml.XmlTest; /** * A special listener that remote the event with string protocol. * * @author <a href='mailto:the_mindstorm[at]evolva[dot]ro'>Alexandru Popescu</a> */ public class RemoteMessageSenderTestListener implements IResultListener { private final StringMessageSenderHelper m_sender; private ISuite m_suite; private XmlTest m_xmlTest; private ITestContext m_currentTestContext; public RemoteMessageSenderTestListener(ISuite suite, XmlTest test, StringMessageSenderHelper msh) { m_sender = msh; m_suite= suite; m_xmlTest= test; } public void onStart(ITestContext testCtx) { m_currentTestContext = testCtx; m_sender.sendMessage(new TestMessage(testCtx, true /*start*/)); } public void onFinish(ITestContext testCtx) { m_sender.sendMessage(new TestMessage(testCtx, false /*end*/)); m_currentTestContext = null; } public void onTestStart(ITestResult testResult) { TestResultMessage trm= null; if (null == m_currentTestContext) { trm= new TestResultMessage(m_suite.getName(), m_xmlTest.getName(), testResult); } else { trm= new TestResultMessage(m_currentTestContext, testResult); } m_sender.sendMessage(trm); } public void onTestFailedButWithinSuccessPercentage(ITestResult testResult) { if (null == m_currentTestContext) { m_sender.sendMessage(new TestResultMessage(m_suite.getName(), m_xmlTest.getName(), testResult)); } else { m_sender.sendMessage(new TestResultMessage(m_currentTestContext, testResult)); } } public void onTestFailure(ITestResult testResult) { if (null == m_currentTestContext) { m_sender.sendMessage(new TestResultMessage(m_suite.getName(), m_xmlTest.getName(), testResult)); } else { m_sender.sendMessage(new TestResultMessage(m_currentTestContext, testResult)); } } public void onTestSkipped(ITestResult testResult) { if (null == m_currentTestContext) { m_sender.sendMessage(new TestResultMessage(m_suite.getName(), m_xmlTest.getName(), testResult)); } else { m_sender.sendMessage(new TestResultMessage(m_currentTestContext, testResult)); } } public void onTestSuccess(ITestResult testResult) { if (null == m_currentTestContext) { m_sender.sendMessage(new TestResultMessage(m_suite.getName(), m_xmlTest.getName(), testResult)); } else { m_sender.sendMessage(new TestResultMessage(m_currentTestContext, testResult)); } } /** * @see org.testng.internal.IConfigurationListener#onConfigurationFailure(org.testng.ITestResult) */ public void onConfigurationFailure(ITestResult itr) { onTestFailure(itr); } /** * @see org.testng.internal.IConfigurationListener#onConfigurationSkip(org.testng.ITestResult) */ public void onConfigurationSkip(ITestResult itr) { onTestSkipped(itr); } /** * @see org.testng.internal.IConfigurationListener#onConfigurationSuccess(org.testng.ITestResult) */ public void onConfigurationSuccess(ITestResult itr) { } }