package com.google.jstestdriver.idea.ui;
import com.google.jstestdriver.TestResult.Result;
import com.intellij.execution.testframework.sm.runner.SMTestProxy;
import java.util.HashMap;
import java.util.Map;
/**
* In the test results tree UI, this is an element representing a test case result.
* @author alexeagle@google.com (Alex Eagle)
*/
public class TestCaseNode {
public Map<String, SMTestProxy> testProxyMap = new HashMap<String, SMTestProxy>();
public final SMTestProxy node;
// Determines how we represent the node. If any children fail, for example, the parent is also marked failed.
private Result worstResult = Result.passed;
public TestCaseNode(SMTestProxy node) {
this.node = node;
}
public boolean allTestsComplete() {
for (SMTestProxy testProxy : testProxyMap.values()) {
if (testProxy.isInProgress()) {
return false;
}
}
return true;
}
public void setTestFailed(Result result) {
if (result == Result.error && worstResult != Result.error) {
node.setTestFailed("", "", true);
} else if (result == Result.failed && worstResult == Result.passed) {
node.setTestFailed("", "", false);
}
}
}