package org.robotframework.javalib.util;
import org.jmock.MockObjectTestCase;
import org.robotframework.javalib.util.StdStreamRedirecter;
public class StdOutAndErrRedirecterTest extends MockObjectTestCase {
private String emptyString = "";
private String logOutput = "StdOutAndErrRedirecterTest";
private StdStreamRedirecter streamRedirecter;
public void setUp() {
streamRedirecter = new StdStreamRedirecter();
streamRedirecter.redirectStdStreams();
}
public void tearDown() {
streamRedirecter.resetStdStreams();
}
public void testRedirectsSystemOutToInternalBuffer() {
System.out.print(logOutput);
assertEquals(logOutput, streamRedirecter.getStdOutAsString());
}
public void testRedirectsSystemErrToInternalBuffer() {
System.err.print(logOutput);
assertEquals(logOutput, streamRedirecter.getStdErrAsString());
}
public void testResettingStreamsRedirectsSystemOutBackToSystemOut() {
streamRedirecter.resetStdStreams();
assertEquals(System.out, streamRedirecter.stdOut);
}
public void testResettingStreamsRedirectsSystemErrBackToSystemOut() {
streamRedirecter.resetStdStreams();
assertEquals(System.err, streamRedirecter.stdErr);
}
public void testGettingSystemOutEmptiesTheBuffer() {
System.out.print(logOutput);
streamRedirecter.getStdOutAsString();
assertEquals(emptyString, streamRedirecter.getStdOutAsString());
}
public void testGettingSystemErrEmptiesTheBuffer() {
System.err.print(logOutput);
streamRedirecter.getStdErrAsString();
assertEquals(emptyString, streamRedirecter.getStdErrAsString());
}
}