package net.thucydides.core.steps; import net.thucydides.core.model.TestOutcome; import org.openqa.selenium.firefox.FirefoxDriver; public class ConsoleStepListener extends BaseStepListener { private final StringBuffer buffer = new StringBuffer(); int currentIndent = 0; public ConsoleStepListener() { super(FirefoxDriver.class, null); } @Override public String toString() { return buffer.toString(); } private void push() { currentIndent++; } private void pop() { currentIndent--; } public void testStarted(String description) { buffer.append("TEST " + description).append("\n"); push(); } public void testFinished(TestOutcome result) { pop(); buffer.append("TEST DONE").append("\n"); } public void stepStarted(ExecutedStepDescription description) { writeIndent(buffer); buffer.append(description.getName()).append("\n"); push(); } @Override public void skippedStepStarted(ExecutedStepDescription description) { stepStarted(description); } private void writeIndent(StringBuffer buffer) { for(int i = 0; i < currentIndent; i++) { buffer.append("-"); } } public void stepFinished() { pop(); writeIndent(buffer); buffer.append("--> STEP DONE").append("\n"); } public void stepFailed(StepFailure failure) { pop(); writeIndent(buffer); buffer.append("--> STEP FAILED").append("\n"); } public void stepIgnored() { pop(); writeIndent(buffer); buffer.append("--> STEP IGNORED").append("\n"); } public void stepPending() { pop(); writeIndent(buffer); buffer.append("--> STEP PENDING").append("\n"); } public void assumptionViolated(String message) { pop(); writeIndent(buffer); buffer.append("--> ASSUMPTION VIOLATED").append("\n"); } public void testFailed(Throwable cause) { buffer.append("--> TEST FAILED").append("\n"); } public void testIgnored() { buffer.append("--> TEST IGNORED").append("\n"); } @Override public void testSkipped() { buffer.append("--> TEST SKIPPED").append("\n"); } @Override public void testPending() { buffer.append("--> TEST PENDING").append("\n"); } @Override public void testFailed(TestOutcome testOutcome, Throwable cause) { buffer.append("--> TEST FAILED").append("\n"); } }