package org.oddjob.io; import java.io.File; import java.util.Properties; import junit.framework.TestCase; import org.apache.log4j.Logger; import org.oddjob.Oddjob; import org.oddjob.state.ParentState; import org.oddjob.tools.ConsoleCapture; import org.oddjob.tools.OurDirs; public class TeeTypeTest extends TestCase { private static final Logger logger = Logger.getLogger(TeeTypeTest.class); File workDir; File testFile; public void setUp() throws Exception { logger.info("---------------------- " + getName() + " ----------------------"); OurDirs dirs = new OurDirs(); workDir = new File(dirs.base(), "work/io"); if (!workDir.exists()) { workDir.mkdirs(); } testFile = new File(workDir, "TeeTypeTest.txt"); testFile.delete(); } public void testOutputStreamExample() { File config = new File(getClass().getResource( "TeeTypeOutputStream.xml").getFile()); Properties properties = new Properties(); properties.setProperty("work.dir", workDir.getAbsolutePath()); Oddjob oddjob = new Oddjob(); oddjob.setFile(config); oddjob.setProperties(properties); ConsoleCapture console = new ConsoleCapture(); try (ConsoleCapture.Close close = console.captureConsole()) { oddjob.run(); } assertEquals(ParentState.COMPLETE, oddjob.lastStateEvent().getState()); assertEquals("Duplicate This!", console.getLines()[0].trim()); assertEquals(true, testFile.exists()); oddjob.destroy(); } public void testInputStreamExample() { File config = new File(getClass().getResource( "TeeTypeInputStream.xml").getFile()); Oddjob oddjob = new Oddjob(); oddjob.setFile(config); ConsoleCapture console = new ConsoleCapture(); try (ConsoleCapture.Close close = console.captureConsole()) { oddjob.run(); } assertEquals(ParentState.COMPLETE, oddjob.lastStateEvent().getState()); assertEquals("This will be copied when read.", console.getLines()[0].trim()); oddjob.destroy(); } }