package jetbrains.mps.baseLanguage.unitTest.execution.client;

/*Generated by MPS */

import jetbrains.mps.baseLanguage.unitTest.execution.TestNodeEvent;
import org.jetbrains.annotations.NotNull;
import jetbrains.mps.baseLanguage.unitTest.execution.TerminationTestEvent;
import jetbrains.mps.baseLanguage.unitTest.execution.TextTestEvent;

/**
 * event is always not null
 * contract is the same as in the DefaultRunListener
 * 
 * for example notice that #onTestRunStarted/Finished might be called several times if there are several test cases for instance
 * #onTestFailure/AssumptionFailure/Ignored might be called multiple times as well
 */
public interface TestStateListener {
  void onProcessNotified();
  void onTestRunStarted();
  void onTestRunFinished();
  void onTestStart(TestNodeEvent event);
  void onTestFinish(TestNodeEvent event);
  void onTestFailure(TestNodeEvent event);
  void onTestAssumptionFailure(TestNodeEvent event);
  void onTestIgnored(TestNodeEvent event);
  void onTermination(@NotNull TerminationTestEvent event);

  void onTextAvailable(@NotNull TextTestEvent event);
}
