package net.jsunit.model;
import java.util.List;
public abstract class AbstractResult implements Result {
public ResultType getResultType() {
ResultType worstResultType = ResultType.SUCCESS;
for (Result childResult : getChildren()) {
ResultType childResultType = childResult.getResultType();
if (childResultType.isWorseThan(worstResultType))
worstResultType = childResultType;
}
return worstResultType;
}
public int getFailureCount() {
int failureCount = 0;
for (Result childResult : getChildren())
failureCount += childResult.getFailureCount();
return failureCount;
}
public int getErrorCount() {
int errorCount = 0;
for (Result childResult : getChildren())
errorCount += childResult.getErrorCount();
return errorCount;
}
public int getTestCount() {
int result = 0;
for (Result childResult : getChildren())
result += childResult.getTestCount();
return result;
}
public boolean wasSuccessful() {
return getResultType() == ResultType.SUCCESS;
}
protected abstract List<? extends Result> getChildren();
public String displayString() {
StringBuffer buffer = new StringBuffer();
buffer.append("The test run had ");
buffer.append(getErrorCount());
buffer.append(" error(s) and ");
buffer.append(getFailureCount());
buffer.append(" failure(s).");
return buffer.toString();
}
}