sm protocol: replace collection of listeners with message bus

This commit is contained in:
Anna Kozlova
2015-07-21 08:51:14 +02:00
parent a94e79baff
commit fea3cf4643
11 changed files with 81 additions and 229 deletions
@@ -26,7 +26,10 @@ import com.intellij.execution.process.ProcessHandler;
import com.intellij.execution.runners.ExecutionEnvironment;
import com.intellij.execution.testframework.TestConsoleProperties;
import com.intellij.execution.testframework.sm.runner.*;
import com.intellij.execution.testframework.sm.runner.ui.*;
import com.intellij.execution.testframework.sm.runner.ui.AttachToProcessListener;
import com.intellij.execution.testframework.sm.runner.ui.SMTRunnerConsoleView;
import com.intellij.execution.testframework.sm.runner.ui.SMTRunnerUIActionsHandler;
import com.intellij.execution.testframework.sm.runner.ui.SMTestRunnerResultsForm;
import com.intellij.execution.testframework.sm.runner.ui.statistics.StatisticsPanel;
import com.intellij.execution.testframework.ui.BaseTestsOutputConsoleView;
import com.intellij.execution.ui.ConsoleView;
@@ -186,10 +189,10 @@ public class SMTestRunnerConnectionUtil {
// events processor
final GeneralTestEventsProcessor eventsProcessor;
if (idBasedTestTree) {
eventsProcessor = new GeneralIdBasedToSMTRunnerEventsConvertor(resultsViewer.getTestsRootNode(), testFrameworkName);
eventsProcessor = new GeneralIdBasedToSMTRunnerEventsConvertor(consoleProperties.getProject(), resultsViewer.getTestsRootNode(), testFrameworkName);
}
else {
eventsProcessor = new GeneralToSMTRunnerEventsConvertor(resultsViewer.getTestsRootNode(), testFrameworkName);
eventsProcessor = new GeneralToSMTRunnerEventsConvertor(consoleProperties.getProject(), resultsViewer.getTestsRootNode(), testFrameworkName);
}
if (locator != null) {
@@ -22,6 +22,7 @@ import com.intellij.execution.testframework.sm.runner.events.*;
import com.intellij.openapi.application.Application;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Key;
import com.intellij.util.containers.ContainerUtil;
import gnu.trove.TIntObjectHashMap;
@@ -36,7 +37,6 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
private final TIntObjectHashMap<Node> myNodeByIdMap = new TIntObjectHashMap<Node>();
private final Set<Node> myRunningTestNodes = ContainerUtil.newHashSet();
private final List<SMTRunnerEventsListener> myEventsListeners = ContainerUtil.createLockFreeCopyOnWriteList();
private final SMTestProxy.SMRootTestProxy myTestsRootProxy;
private final Node myTestsRootNode;
private final String myTestFrameworkName;
@@ -45,7 +45,10 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
private SMTestLocator myLocator = null;
private TestProxyPrinterProvider myTestProxyPrinterProvider = null;
public GeneralIdBasedToSMTRunnerEventsConvertor(@NotNull SMTestProxy.SMRootTestProxy testsRootProxy, @NotNull String testFrameworkName) {
public GeneralIdBasedToSMTRunnerEventsConvertor(Project project,
@NotNull SMTestProxy.SMRootTestProxy testsRootProxy,
@NotNull String testFrameworkName) {
super(project);
myTestsRootProxy = testsRootProxy;
myTestsRootNode = new Node(0, null, testsRootProxy);
myTestFrameworkName = testFrameworkName;
@@ -57,16 +60,12 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
myLocator = locator;
}
public void addEventsListener(@NotNull SMTRunnerEventsListener listener) {
myEventsListeners.add(listener);
}
public void onStartTesting() {
addToInvokeLater(new Runnable() {
public void run() {
myTestsRootNode.setState(State.RUNNING, GeneralIdBasedToSMTRunnerEventsConvertor.this);
myTestsRootProxy.setStarted();
fireOnTestingStarted();
myEventPublisher.onTestingStarted(myTestsRootProxy);
}
});
}
@@ -105,7 +104,7 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
myNodeByIdMap.clear();
myRunningTestNodes.clear();
fireOnTestingFinished();
myEventPublisher.onTestingFinished(myTestsRootProxy);
}
});
stopEventProcessing();
@@ -201,7 +200,7 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
SMTestProxy testProxy = node.getProxy();
testProxy.setDuration(testFinishedEvent.getDuration());
testProxy.setFinished();
fireOnTestFinished(testProxy);
myEventPublisher.onTestFinished(testProxy);
terminateNode(node, State.FINISHED);
}
}
@@ -215,7 +214,7 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
if (node != null) {
SMTestProxy suiteProxy = node.getProxy();
suiteProxy.setFinished();
fireOnSuiteFinished(suiteProxy);
myEventPublisher.onSuiteFinished(suiteProxy);
terminateNode(node, State.FINISHED);
}
}
@@ -264,7 +263,7 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
final int testCount) {
addToInvokeLater(new Runnable() {
public void run() {
fireOnCustomProgressTestsCategory(categoryName, testCount);
myEventPublisher.onCustomProgressTestsCategory(categoryName, testCount);
}
});
}
@@ -272,7 +271,7 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
public void onCustomProgressTestStarted() {
addToInvokeLater(new Runnable() {
public void run() {
fireOnCustomProgressTestStarted();
myEventPublisher.onCustomProgressTestStarted();
}
});
}
@@ -281,7 +280,7 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
public void onCustomProgressTestFinished() {
addToInvokeLater(new Runnable() {
public void run() {
fireOnCustomProgressTestFinished();
myEventPublisher.onCustomProgressTestFinished();
}
});
}
@@ -289,7 +288,7 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
public void onCustomProgressTestFailed() {
addToInvokeLater(new Runnable() {
public void run() {
fireOnCustomProgressTestFailed();
myEventPublisher.onCustomProgressTestFailed();
}
});
}
@@ -326,7 +325,7 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
}
// fire event
fireOnTestFailed(testProxy);
myEventPublisher.onTestFailed(testProxy);
terminateNode(node, State.FAILED);
}
@@ -341,7 +340,7 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
SMTestProxy testProxy = node.getProxy();
testProxy.setTestIgnored(testIgnoredEvent.getIgnoreComment(), testIgnoredEvent.getStacktrace());
// fire event
fireOnTestIgnored(testProxy);
myEventPublisher.onTestIgnored(testProxy);
terminateNode(node, State.IGNORED);
}
}
@@ -370,7 +369,7 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
public void onTestsCountInSuite(final int count) {
addToInvokeLater(new Runnable() {
public void run() {
fireOnTestsCountInSuite(count);
myEventPublisher.onTestsCountInSuite(count);
}
});
}
@@ -397,87 +396,7 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
Node node = myNodeByIdMap.get(id);
return node != null ? node.getProxy() : null;
}
private void fireOnTestingStarted() {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onTestingStarted(myTestsRootProxy);
}
}
private void fireOnTestingFinished() {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onTestingFinished(myTestsRootProxy);
}
}
private void fireOnTestsCountInSuite(final int count) {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onTestsCountInSuite(count);
}
}
private void fireOnTestStarted(final SMTestProxy test) {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onTestStarted(test);
}
}
private void fireOnTestFinished(final SMTestProxy test) {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onTestFinished(test);
}
}
private void fireOnTestFailed(final SMTestProxy test) {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onTestFailed(test);
}
}
private void fireOnTestIgnored(final SMTestProxy test) {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onTestIgnored(test);
}
}
private void fireOnSuiteStarted(final SMTestProxy suite) {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onSuiteStarted(suite);
}
}
private void fireOnSuiteFinished(final SMTestProxy suite) {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onSuiteFinished(suite);
}
}
private void fireOnCustomProgressTestsCategory(@Nullable final String categoryName, int testCount) {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onCustomProgressTestsCategory(categoryName, testCount);
}
}
private void fireOnCustomProgressTestStarted() {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onCustomProgressTestStarted();
}
}
private void fireOnCustomProgressTestFinished() {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onCustomProgressTestFinished();
}
}
private void fireOnCustomProgressTestFailed() {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onCustomProgressTestFailed();
}
}
/*
* Remove listeners, etc
*/
@@ -485,7 +404,7 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
super.dispose();
addToInvokeLater(new Runnable() {
public void run() {
myEventsListeners.clear();
disconnectListeners();
if (!myRunningTestNodes.isEmpty()) {
Application application = ApplicationManager.getApplication();
@@ -506,10 +425,10 @@ public class GeneralIdBasedToSMTRunnerEventsConvertor extends GeneralTestEventsP
SMTestProxy proxy = node.getProxy();
proxy.setStarted();
if (proxy.isSuite()) {
fireOnSuiteStarted(proxy);
myEventPublisher.onSuiteStarted(proxy);
} else {
myRunningTestNodes.add(lowestNode);
fireOnTestStarted(proxy);
myEventPublisher.onTestStarted(proxy);
}
node = node.getParentNode();
}
@@ -19,11 +19,14 @@ import com.intellij.execution.testframework.sm.runner.events.*;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.application.Application;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Condition;
import com.intellij.openapi.util.Conditions;
import com.intellij.openapi.util.Key;
import com.intellij.util.Processor;
import com.intellij.util.containers.HashMap;
import com.intellij.util.containers.TransferToEDTQueue;
import com.intellij.util.messages.MessageBusConnection;
import com.intellij.util.ui.UIUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -31,7 +34,6 @@ import org.jetbrains.annotations.Nullable;
import javax.swing.*;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* Processes events of test runner in general text-based form.
@@ -41,6 +43,8 @@ import java.util.Map;
* @author: Roman Chernyatchik
*/
public abstract class GeneralTestEventsProcessor implements Disposable {
protected final SMTRunnerEventsListener myEventPublisher;
private final Project myProject;
private TransferToEDTQueue<Runnable> myTransferToEDTQueue =
new TransferToEDTQueue<Runnable>("SM queue", new Processor<Runnable>() {
@Override
@@ -49,8 +53,12 @@ public abstract class GeneralTestEventsProcessor implements Disposable {
return true;
}
}, getDisposedCondition(), 300);
private HashMap<SMTRunnerEventsListener, MessageBusConnection> myListenerAdapters = new HashMap<SMTRunnerEventsListener, MessageBusConnection>();
public GeneralTestEventsProcessor(Project project) {
myProject = project;
myEventPublisher = project.getMessageBus().syncPublisher(SMTRunnerEventsListener.TEST_STATUS);
}
// tree construction events
public void onRootPresentationAdded(String rootName, String comment, String rootLocation) {}
@@ -108,7 +116,11 @@ public abstract class GeneralTestEventsProcessor implements Disposable {
public abstract void setLocator(@NotNull SMTestLocator locator);
public abstract void addEventsListener(@NotNull SMTRunnerEventsListener viewer);
public void addEventsListener(@NotNull SMTRunnerEventsListener listener) {
final MessageBusConnection connection = myProject.getMessageBus().connect();
myListenerAdapters.put(listener, connection);
connection.subscribe(SMTRunnerEventsListener.TEST_STATUS, listener);
}
public abstract void setPrinterProvider(@NotNull TestProxyPrinterProvider printerProvider);
@@ -124,6 +136,12 @@ public abstract class GeneralTestEventsProcessor implements Disposable {
}
}
protected void disconnectListeners() {
for (MessageBusConnection connection : myListenerAdapters.values()) {
connection.disconnect();
}
}
public Condition getDisposedCondition() {
return Conditions.alwaysFalse();
}
@@ -18,15 +18,13 @@ package com.intellij.execution.testframework.sm.runner;
import com.intellij.execution.process.ProcessOutputTypes;
import com.intellij.execution.testframework.AbstractTestProxy;
import com.intellij.execution.testframework.sm.SMTestRunnerConnectionUtil;
import com.intellij.execution.testframework.sm.SMTestsRunnerBundle;
import com.intellij.execution.testframework.sm.runner.events.*;
import com.intellij.openapi.application.Application;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Key;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.util.ObjectUtils;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.TestOnly;
@@ -44,7 +42,6 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
private final Map<String, SMTestProxy> myRunningTestsFullNameToProxy = new HashMap<String, SMTestProxy>();
private final Set<AbstractTestProxy> myFailedTestsSet = new HashSet<AbstractTestProxy>();
private final TestSuiteStack mySuitesStack = new TestSuiteStack();
private final List<SMTRunnerEventsListener> myEventsListeners = ContainerUtil.createLockFreeCopyOnWriteList();
private final SMTestProxy.SMRootTestProxy myTestsRootNode;
private final String myTestFrameworkName;
@@ -52,7 +49,9 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
private SMTestLocator myLocator = null;
private boolean myTreeBuildBeforeStart = false;
public GeneralToSMTRunnerEventsConvertor(@NotNull SMTestProxy.SMRootTestProxy testsRootNode, @NotNull String testFrameworkName) {
public GeneralToSMTRunnerEventsConvertor(Project project, @NotNull SMTestProxy.SMRootTestProxy testsRootNode,
@NotNull String testFrameworkName) {
super(project);
myTestsRootNode = testsRootNode;
myTestFrameworkName = testFrameworkName;
}
@@ -62,10 +61,6 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
myLocator = locator;
}
public void addEventsListener(@NotNull final SMTRunnerEventsListener listener) {
myEventsListeners.add(listener);
}
public void onStartTesting() {
addToInvokeLater(new Runnable() {
public void run() {
@@ -73,7 +68,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
myTestsRootNode.setStarted();
//fire
fireOnTestingStarted();
myEventPublisher.onTestingStarted(myTestsRootNode);
}
});
}
@@ -109,7 +104,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
//fire events
fireOnTestingFinished();
myEventPublisher.onTestingFinished(myTestsRootNode);
}
});
stopEventProcessing();
@@ -141,7 +136,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
testProxy.setLocator(myLocator);
}
getCurrentSuite().addChild(testProxy);
fireOnSuiteTreeNodeAdded(testProxy);
myEventPublisher.onSuiteTreeNodeAdded(testProxy);
}
});
}
@@ -161,7 +156,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
mySuitesStack.pushSuite(newSuite);
fireOnSuiteTreeStarted(newSuite);
myEventPublisher.onSuiteTreeStarted(newSuite);
}
});
}
@@ -217,7 +212,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
testProxy.setStarted();
//fire events
fireOnTestStarted(testProxy);
myEventPublisher.onTestStarted(testProxy);
}
});
}
@@ -247,7 +242,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
newSuite.setStarted();
//fire event
fireOnSuiteStarted(newSuite);
myEventPublisher.onSuiteStarted(newSuite);
}
});
}
@@ -282,7 +277,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
myRunningTestsFullNameToProxy.remove(fullTestName);
//fire events
fireOnTestFinished(testProxy);
myEventPublisher.onTestFinished(testProxy);
}
});
}
@@ -296,7 +291,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
mySuite.setFinished();
//fire events
fireOnSuiteFinished(mySuite);
myEventPublisher.onSuiteFinished(mySuite);
}
}
});
@@ -333,7 +328,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
final int testCount) {
addToInvokeLater(new Runnable() {
public void run() {
fireOnCustomProgressTestsCategory(categoryName, testCount);
myEventPublisher.onCustomProgressTestsCategory(categoryName, testCount);
}
});
}
@@ -341,7 +336,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
public void onCustomProgressTestStarted() {
addToInvokeLater(new Runnable() {
public void run() {
fireOnCustomProgressTestStarted();
myEventPublisher.onCustomProgressTestStarted();
}
});
}
@@ -349,7 +344,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
public void onCustomProgressTestFinished() {
addToInvokeLater(new Runnable() {
public void run() {
fireOnCustomProgressTestFinished();
myEventPublisher.onCustomProgressTestFinished();
}
});
}
@@ -358,7 +353,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
public void onCustomProgressTestFailed() {
addToInvokeLater(new Runnable() {
public void run() {
fireOnCustomProgressTestFailed();
myEventPublisher.onCustomProgressTestFailed();
}
});
}
@@ -428,7 +423,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
myFailedTestsSet.add(testProxy);
// fire event
fireOnTestFailed(testProxy);
myEventPublisher.onTestFailed(testProxy);
}
});
}
@@ -465,7 +460,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
testProxy.setTestIgnored(ignoreComment, stackTrace);
// fire event
fireOnTestIgnored(testProxy);
myEventPublisher.onTestIgnored(testProxy);
}
});
}
@@ -498,7 +493,7 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
public void onTestsCountInSuite(final int count) {
addToInvokeLater(new Runnable() {
public void run() {
fireOnTestsCountInSuite(count);
myEventPublisher.onTestsCountInSuite(count);
}
});
}
@@ -557,97 +552,6 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
return namesDump;
}
private void fireOnTestingStarted() {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onTestingStarted(myTestsRootNode);
}
}
private void fireOnTestingFinished() {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onTestingFinished(myTestsRootNode);
}
}
private void fireOnTestsCountInSuite(final int count) {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onTestsCountInSuite(count);
}
}
private void fireOnSuiteTreeNodeAdded(SMTestProxy testProxy) {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onSuiteTreeNodeAdded(testProxy);
}
}
private void fireOnSuiteTreeStarted(SMTestProxy suite) {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onSuiteTreeStarted(suite);
}
}
private void fireOnTestStarted(final SMTestProxy test) {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onTestStarted(test);
}
}
private void fireOnTestFinished(final SMTestProxy test) {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onTestFinished(test);
}
}
private void fireOnTestFailed(final SMTestProxy test) {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onTestFailed(test);
}
}
private void fireOnTestIgnored(final SMTestProxy test) {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onTestIgnored(test);
}
}
private void fireOnSuiteStarted(final SMTestProxy suite) {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onSuiteStarted(suite);
}
}
private void fireOnSuiteFinished(final SMTestProxy suite) {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onSuiteFinished(suite);
}
}
private void fireOnCustomProgressTestsCategory(@Nullable final String categoryName, int testCount) {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onCustomProgressTestsCategory(categoryName, testCount);
}
}
private void fireOnCustomProgressTestStarted() {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onCustomProgressTestStarted();
}
}
private void fireOnCustomProgressTestFinished() {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onCustomProgressTestFinished();
}
}
private void fireOnCustomProgressTestFailed() {
for (SMTRunnerEventsListener listener : myEventsListeners) {
listener.onCustomProgressTestFailed();
}
}
/*
* Remove listeners, etc
@@ -656,8 +560,8 @@ public class GeneralToSMTRunnerEventsConvertor extends GeneralTestEventsProcesso
super.dispose();
addToInvokeLater(new Runnable() {
public void run() {
myEventsListeners.clear();
disconnectListeners();
if (!myRunningTestsFullNameToProxy.isEmpty()) {
final Application application = ApplicationManager.getApplication();
if (!application.isHeadlessEnvironment() && !application.isUnitTestMode()) {
@@ -15,6 +15,7 @@
*/
package com.intellij.execution.testframework.sm.runner;
import com.intellij.util.messages.Topic;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -26,6 +27,8 @@ import java.util.List;
* Handles Test Runner events
*/
public interface SMTRunnerEventsListener {
Topic<SMTRunnerEventsListener> TEST_STATUS = new Topic<SMTRunnerEventsListener>("test status", SMTRunnerEventsListener.class);
/**
* On start testing, before tests and suits launching
* @param testsRoot
@@ -28,7 +28,7 @@ public class GeneralIdBasedToSMTRunnerEventsConvertorTest extends BaseSMTRunnerT
protected void setUp() throws Exception {
super.setUp();
myRootProxy = new SMTestProxy.SMRootTestProxy();
myEventsProcessor = new GeneralIdBasedToSMTRunnerEventsConvertor(myRootProxy, "test");
myEventsProcessor = new GeneralIdBasedToSMTRunnerEventsConvertor(getProject(), myRootProxy, "test");
myEventsProcessor.onStartTesting();
}
@@ -83,7 +83,7 @@ public class GeneralToSMTRunnerEventsConvertorTest extends BaseSMTRunnerTestCase
myConsole = new MyConsoleView(consoleProperties, environment);
myConsole.initUI();
myResultsViewer = myConsole.getResultsViewer();
myEventsProcessor = new GeneralToSMTRunnerEventsConvertor(myResultsViewer.getTestsRootNode(), "SMTestFramework");
myEventsProcessor = new GeneralToSMTRunnerEventsConvertor(consoleProperties.getProject(), myResultsViewer.getTestsRootNode(), "SMTestFramework");
myEventsProcessor.addEventsListener(myResultsViewer);
myTreeModel = myResultsViewer.getTreeView().getModel();
@@ -16,6 +16,7 @@
package com.intellij.execution.testframework.sm.runner;
import com.intellij.execution.testframework.sm.runner.events.*;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Key;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -26,6 +27,10 @@ import org.jetbrains.annotations.Nullable;
public class MockGeneralTestEventsProcessorAdapter extends GeneralTestEventsProcessor {
private final StringBuilder myOutputBuffer = new StringBuilder();
public MockGeneralTestEventsProcessorAdapter(Project project) {
super(project);
}
@Override
public void onStartTesting() {
}
@@ -96,7 +101,7 @@ public class MockGeneralTestEventsProcessorAdapter extends GeneralTestEventsProc
}
@Override
public void addEventsListener(@NotNull SMTRunnerEventsListener viewer) {
public void addEventsListener(@NotNull SMTRunnerEventsListener listener) {
}
@Override
@@ -38,7 +38,7 @@ public class OutputToGeneralTestsEventsConverterTest extends BaseSMTRunnerTestCa
testFrameworkName,
DefaultRunExecutor.getRunExecutorInstance());
myOutputConsumer = new OutputToGeneralTestEventsConverter(testFrameworkName, properties);
myEnventsProcessor = new MockGeneralTestEventsProcessorAdapter();
myEnventsProcessor = new MockGeneralTestEventsProcessorAdapter(properties.getProject());
myOutputConsumer.setProcessor(myEnventsProcessor);
}
@@ -71,7 +71,7 @@ public class SMTRunnerConsoleTest extends BaseSMTRunnerTestCase {
myConsole.initUI();
myResultsViewer = myConsole.getResultsViewer();
myRootSuite = myResultsViewer.getTestsRootNode();
myEventsProcessor = new GeneralToSMTRunnerEventsConvertor(myResultsViewer.getTestsRootNode(), "SMTestFramework");
myEventsProcessor = new GeneralToSMTRunnerEventsConvertor(consoleProperties.getProject(), myResultsViewer.getTestsRootNode(), "SMTestFramework");
myEventsProcessor.onStartTesting();
}
@@ -61,7 +61,7 @@ public class SMTestRunnerResultsFormTest extends BaseSMTRunnerTestCase {
myConsole.initUI();
myResultsViewer = myConsole.getResultsViewer();
myTestsRootNode = myResultsViewer.getTestsRootNode();
myEventsProcessor = new GeneralToSMTRunnerEventsConvertor(myResultsViewer.getTestsRootNode(), "SMTestFramework");
myEventsProcessor = new GeneralToSMTRunnerEventsConvertor(myConsoleProperties.getProject(), myResultsViewer.getTestsRootNode(), "SMTestFramework");
myEventsProcessor.addEventsListener(myResultsViewer);
myTreeModel = myResultsViewer.getTreeView().getModel();
}