mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
compound state for all kinds of failures (IDEA-156747)
This commit is contained in:
+20
-12
@@ -441,7 +441,15 @@ public class SMTestProxy extends AbstractTestProxy {
|
||||
|
||||
public void setTestFailed(@NotNull String localizedMessage, @Nullable String stackTrace, boolean testError) {
|
||||
setStacktraceIfNotSet(stackTrace);
|
||||
if (myState instanceof TestFailedState) {
|
||||
if (myState instanceof TestComparisionFailedState) {
|
||||
CompoundTestFailedState states = new CompoundTestFailedState(localizedMessage, stackTrace);
|
||||
states.addFailure((TestFailedState)myState);
|
||||
final TestFailedState failedState = new TestFailedState(localizedMessage, stackTrace);
|
||||
states.addFailure(failedState);
|
||||
fireOnNewPrintable(failedState);
|
||||
myState = states;
|
||||
}
|
||||
else if (myState instanceof TestFailedState) {
|
||||
((TestFailedState)myState).addError(localizedMessage, stackTrace, myPrinter);
|
||||
}
|
||||
else {
|
||||
@@ -473,14 +481,14 @@ public class SMTestProxy extends AbstractTestProxy {
|
||||
@Nullable final String actualFilePath) {
|
||||
setStacktraceIfNotSet(stackTrace);
|
||||
final TestComparisionFailedState comparisionFailedState = new TestComparisionFailedState(localizedMessage, stackTrace, actualText, expectedText, expectedFilePath, actualFilePath);
|
||||
if (myState instanceof TestComparisionFailedState) {
|
||||
final TestComparisonFailedStates states = new TestComparisonFailedStates(localizedMessage, stackTrace);
|
||||
states.addComparisonFailure((TestComparisionFailedState)myState);
|
||||
states.addComparisonFailure(comparisionFailedState);
|
||||
myState = states;
|
||||
if (myState instanceof CompoundTestFailedState) {
|
||||
((CompoundTestFailedState)myState).addFailure(comparisionFailedState);
|
||||
}
|
||||
else if (myState instanceof TestComparisonFailedStates) {
|
||||
((TestComparisonFailedStates)myState).addComparisonFailure(comparisionFailedState);
|
||||
else if (myState instanceof TestFailedState) {
|
||||
final CompoundTestFailedState states = new CompoundTestFailedState(localizedMessage, stackTrace);
|
||||
states.addFailure((TestFailedState)myState);
|
||||
states.addFailure(comparisionFailedState);
|
||||
myState = states;
|
||||
}
|
||||
else {
|
||||
myState = comparisionFailedState;
|
||||
@@ -648,8 +656,8 @@ public class SMTestProxy extends AbstractTestProxy {
|
||||
return ((TestComparisionFailedState)myState).getHyperlink();
|
||||
}
|
||||
|
||||
if (myState instanceof TestComparisonFailedStates) {
|
||||
return ((TestComparisonFailedStates)myState).getHyperlinks().get(0);
|
||||
if (myState instanceof CompoundTestFailedState) {
|
||||
return ((CompoundTestFailedState)myState).getHyperlinks().get(0);
|
||||
}
|
||||
|
||||
if (myChildren != null) {
|
||||
@@ -667,8 +675,8 @@ public class SMTestProxy extends AbstractTestProxy {
|
||||
@NotNull
|
||||
@Override
|
||||
public List<DiffHyperlink> getDiffViewerProviders() {
|
||||
if (myState instanceof TestComparisonFailedStates) {
|
||||
return ((TestComparisonFailedStates)myState).getHyperlinks();
|
||||
if (myState instanceof CompoundTestFailedState) {
|
||||
return ((CompoundTestFailedState)myState).getHyperlinks();
|
||||
}
|
||||
return super.getDiffViewerProviders();
|
||||
}
|
||||
|
||||
+7
-6
@@ -26,28 +26,29 @@ import org.jetbrains.annotations.Nullable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class TestComparisonFailedStates extends TestFailedState {
|
||||
public class CompoundTestFailedState extends TestFailedState {
|
||||
|
||||
final List<TestComparisionFailedState> myStates = new ArrayList<TestComparisionFailedState>();
|
||||
final List<TestFailedState> myStates = new ArrayList<TestFailedState>();
|
||||
|
||||
public TestComparisonFailedStates(@Nullable String localizedMessage, @Nullable String stackTrace) {
|
||||
public CompoundTestFailedState(@Nullable String localizedMessage, @Nullable String stackTrace) {
|
||||
super(localizedMessage, stackTrace);
|
||||
}
|
||||
|
||||
public void addComparisonFailure(TestComparisionFailedState state) {
|
||||
public void addFailure(TestFailedState state) {
|
||||
myStates.add(state);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void printOn(Printer printer) {
|
||||
|
||||
for (TestComparisionFailedState state : myStates) {
|
||||
for (TestFailedState state : myStates) {
|
||||
state.printOn(printer);
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public List<DiffHyperlink> getHyperlinks() {
|
||||
return ContainerUtil.map(myStates, state -> state.getHyperlink());
|
||||
return ContainerUtil.map(ContainerUtil.filter(myStates, state -> state instanceof TestComparisionFailedState),
|
||||
state -> ((TestComparisionFailedState)state).getHyperlink());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user