package org.oddjob.io;
import junit.framework.TestCase;
import org.apache.log4j.Logger;
import org.oddjob.Oddjob;
import org.oddjob.arooa.ArooaParseException;
import org.oddjob.arooa.xml.XMLConfiguration;
import org.oddjob.tools.ConsoleCapture;
import org.oddjob.tools.FragmentHelper;
public class StderrTypeTest extends TestCase {
private static final Logger logger = Logger.getLogger(StderrTypeTest.class);
@Override
protected void setUp() throws Exception {
logger.debug("------------------- " + getName() + " --------------");
}
String EOL = System.getProperty("line.separator");
public void testStderrInOddjob() {
String xml =
"<oddjob>" +
" <job>" +
" <sequential>" +
" <jobs>" +
" <copy>" +
" <input>" +
" <buffer>Hello" + EOL + "</buffer>" +
" </input>" +
" <output>" +
" <stderr/>" +
" </output>" +
" </copy>" +
" <copy>" +
" <input>" +
" <buffer>World" + EOL + "</buffer>" +
" </input>" +
" <output>" +
" <stderr/>" +
" </output>" +
" </copy>" +
" </jobs>" +
" </sequential>" +
" </job>" +
"</oddjob>";
Oddjob oddjob = new Oddjob();
oddjob.setConfiguration(new XMLConfiguration("XML", xml));
ConsoleCapture results = new ConsoleCapture();
try (ConsoleCapture.Close close = results.captureConsole()) {
oddjob.run();
}
oddjob.destroy();
results.dump(logger);
String[] lines = results.getLines();
assertEquals("Hello", lines[0].trim());
assertEquals("World", lines[1].trim());
}
public void testExample() throws ArooaParseException {
FragmentHelper helper = new FragmentHelper();
Runnable copy = (Runnable) helper.createComponentFromResource(
"org/oddjob/io/StderrTypeExample.xml");
ConsoleCapture results = new ConsoleCapture();
try (ConsoleCapture.Close close = results.captureConsole()) {
copy.run();
}
String[] lines = results.getLines();
assertEquals("It's all going wrong!", lines[0].trim());
assertEquals(1, lines.length);
}
}