package net.sf.jsptest.utils;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import junit.framework.TestCase;
/**
* @author Lasse Koskela
*/
public class StreamConsumerTest extends TestCase {
private StringWriter log;
private String name;
protected void setUp() throws Exception {
super.setUp();
log = new StringWriter();
name = "name";
}
public void testConsumesAllAvailableInput() throws Exception {
InputStream source = new ByteArrayInputStream("abc".getBytes());
assertEquals(3, source.available());
runStreamConsumerOn(source);
assertEquals(0, source.available());
}
public void testWritesNameAndFullContentAfterReadingEverything() throws Exception {
runStreamConsumerOn(new ByteArrayInputStream("abc".getBytes()));
String sep = System.getProperty("line.separator");
String expectation = name + ":"+sep+"abc"+sep;
assertEquals(expectation, log.toString());
}
private void runStreamConsumerOn(InputStream source) {
new StreamConsumer(name, source, new PrintWriter(log)).run();
}
}