001: package org.testng.remote.strprotocol;
002:
003: import org.testng.ISuite;
004: import org.testng.ITestContext;
005: import org.testng.ITestListener;
006: import org.testng.ITestResult;
007: import org.testng.internal.IResultListener;
008: import org.testng.xml.XmlTest;
009:
010: /**
011: * A special listener that remote the event with string protocol.
012: *
013: * @author <a href='mailto:the_mindstorm[at]evolva[dot]ro'>Alexandru Popescu</a>
014: */
015: public class RemoteMessageSenderTestListener implements IResultListener {
016: private final StringMessageSenderHelper m_sender;
017: private ISuite m_suite;
018: private XmlTest m_xmlTest;
019: private ITestContext m_currentTestContext;
020:
021: public RemoteMessageSenderTestListener(ISuite suite, XmlTest test,
022: StringMessageSenderHelper msh) {
023: m_sender = msh;
024: m_suite = suite;
025: m_xmlTest = test;
026: }
027:
028: public void onStart(ITestContext testCtx) {
029: m_currentTestContext = testCtx;
030: m_sender.sendMessage(new TestMessage(testCtx, true /*start*/));
031: }
032:
033: public void onFinish(ITestContext testCtx) {
034: m_sender.sendMessage(new TestMessage(testCtx, false /*end*/));
035: m_currentTestContext = null;
036: }
037:
038: public void onTestStart(ITestResult testResult) {
039: TestResultMessage trm = null;
040:
041: if (null == m_currentTestContext) {
042: trm = new TestResultMessage(m_suite.getName(), m_xmlTest
043: .getName(), testResult);
044: } else {
045: trm = new TestResultMessage(m_currentTestContext,
046: testResult);
047: }
048:
049: m_sender.sendMessage(trm);
050: }
051:
052: public void onTestFailedButWithinSuccessPercentage(
053: ITestResult testResult) {
054: if (null == m_currentTestContext) {
055: m_sender.sendMessage(new TestResultMessage(m_suite
056: .getName(), m_xmlTest.getName(), testResult));
057: } else {
058: m_sender.sendMessage(new TestResultMessage(
059: m_currentTestContext, testResult));
060: }
061: }
062:
063: public void onTestFailure(ITestResult testResult) {
064: if (null == m_currentTestContext) {
065: m_sender.sendMessage(new TestResultMessage(m_suite
066: .getName(), m_xmlTest.getName(), testResult));
067: } else {
068: m_sender.sendMessage(new TestResultMessage(
069: m_currentTestContext, testResult));
070: }
071: }
072:
073: public void onTestSkipped(ITestResult testResult) {
074: if (null == m_currentTestContext) {
075: m_sender.sendMessage(new TestResultMessage(m_suite
076: .getName(), m_xmlTest.getName(), testResult));
077: } else {
078: m_sender.sendMessage(new TestResultMessage(
079: m_currentTestContext, testResult));
080: }
081: }
082:
083: public void onTestSuccess(ITestResult testResult) {
084: if (null == m_currentTestContext) {
085: m_sender.sendMessage(new TestResultMessage(m_suite
086: .getName(), m_xmlTest.getName(), testResult));
087: } else {
088: m_sender.sendMessage(new TestResultMessage(
089: m_currentTestContext, testResult));
090: }
091: }
092:
093: /**
094: * @see org.testng.internal.IConfigurationListener#onConfigurationFailure(org.testng.ITestResult)
095: */
096: public void onConfigurationFailure(ITestResult itr) {
097: onTestFailure(itr);
098: }
099:
100: /**
101: * @see org.testng.internal.IConfigurationListener#onConfigurationSkip(org.testng.ITestResult)
102: */
103: public void onConfigurationSkip(ITestResult itr) {
104: onTestSkipped(itr);
105: }
106:
107: /**
108: * @see org.testng.internal.IConfigurationListener#onConfigurationSuccess(org.testng.ITestResult)
109: */
110: public void onConfigurationSuccess(ITestResult itr) {
111: }
112: }
|