package com.bc.process.util; import junit.framework.TestCase; import java.io.PipedOutputStream; import java.io.PipedInputStream; import java.io.IOException; public class EnterPasswordProcessObserverTest extends TestCase { private EnterPasswordProcessObserver observer; private PipedInputStream handleOut; protected void setUp() throws Exception { PipedOutputStream out = new PipedOutputStream(); handleOut = new PipedInputStream(out); observer = new EnterPasswordProcessObserver(out, "blabla"); } public void testAnswersPromptAtColon() throws IOException { observer.processWroteToStream("text ohne doppelpunkt"); assertEquals(0, handleOut.available()); observer.processWroteToStream("\nneue zeile ohne doppelpunkt\n"); assertEquals(0, handleOut.available()); observer.processWroteToStream("prompt: "); assertEquals("blabla".length(), handleOut.available()); byte[] buffer = new byte[100]; int chars = handleOut.read(buffer); assertEquals("blabla", new String(buffer,0, chars)); } public void testAnswersOnlyOnce() throws IOException { observer.processWroteToStream("prompt: "); assertEquals("blabla".length(), handleOut.available()); byte[] buffer = new byte[100]; int chars = handleOut.read(buffer); assertEquals("blabla", new String(buffer,0, chars)); observer.processWroteToStream("second prompt: "); assertEquals(0, handleOut.available()); observer.processWroteToStream("\nthird prompt: \n"); assertEquals(0, handleOut.available()); } }