// Copyright � 2002-2005 Canoo Engineering AG, Switzerland.
package com.canoo.webtest.reporting;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Collections;
import org.apache.tools.ant.Project;
import junit.framework.TestCase;
import com.canoo.webtest.ant.TestStepSequence;
import com.canoo.webtest.ant.WebtestTask;
import com.canoo.webtest.engine.Context;
import com.canoo.webtest.self.StepStub;
/**
* Unit tests for {@link PlainTextReporter}.
* @author Unknown
* @author Marc Guillemot
*/
public class PlainTextReporterTest extends TestCase
{
private RootStepResult fResultInfo;
private StringWriter fStringWriter;
private PrintWriter fPrintWriter;
private PlainTextReporter fReporter;
protected void setUp() throws Exception {
super.setUp();
final Project project = new Project();
final WebtestTask webtest = new WebtestTask();
webtest.setProject(project);
webtest.addSteps(new TestStepSequence());
final Context context = new Context(webtest);
WebtestTask.setThreadContext(context);
fResultInfo = new RootStepResult(webtest.getStepSequence());
fStringWriter = new StringWriter();
fPrintWriter = new PrintWriter(fStringWriter);
fReporter = new PlainTextReporter();
}
public void testPrintNoSteps() {
fReporter.print(fPrintWriter, fResultInfo);
assertTrue("Summary header",
fStringWriter.toString().startsWith("Test step summary for specification:"));
}
public void testPrintCompletedStep() {
final StepResult result = new StepResult("myTask");
result.taskFinished(new StepStub(), null, Collections.EMPTY_LIST);
fResultInfo.addChild(result);
fReporter.print(fPrintWriter, fResultInfo);
final String str = fStringWriter.toString();
assertTrue(str.startsWith("Test"));
assertTrue(str.indexOf("myTask") > 0);
assertTrue(str.indexOf("Duration") > 0);
}
public void testPrintNotCompleted() {
final StepResult result = new StepResult("myTask");
fResultInfo.addChild(result);
fReporter.print(fPrintWriter, fResultInfo);
final String str = fStringWriter.toString();
assertTrue(str.startsWith("Test"));
assertTrue(str.indexOf("myTask") > 0);
assertTrue(str.indexOf("not completed") > 0);
}
public void testPrintNotSuccessful() {
final StepResult result = new StepResult("myTask");
fResultInfo.addChild(result);
fResultInfo.setLastFailingTaskResult(result, new IllegalArgumentException("dummy error"));
fReporter.print(fPrintWriter, fResultInfo);
final String str = fStringWriter.toString();
assertTrue(str.startsWith("Test"));
assertTrue(str.indexOf("PlainTextReporter") > 0);
assertTrue(str.indexOf("Test failed.") > 0);
assertTrue(str.indexOf("IllegalArgumentException") > 0);
assertTrue(str.indexOf("dummy error") > 0);
}
}