/**
*
*/
package org.oddjob.arooa.types;
import junit.framework.TestCase;
import org.apache.log4j.Logger;
import org.oddjob.Oddjob;
import org.oddjob.arooa.xml.XMLConfiguration;
import org.oddjob.state.ParentState;
import org.oddjob.tools.ConsoleCapture;
import org.oddjob.tools.OddjobTestHelper;
/**
* @author rob
*
*/
public class ListTypeExamplesTest extends TestCase {
private static final Logger logger = Logger.getLogger(
ListTypeExamplesTest.class);
@Override
protected void setUp() throws Exception {
super.setUp();
logger.info("----------------------------- " + getName()
+ " --------------------------------");
}
public void testSimpleWithNestedListExample() {
Oddjob oddjob = new Oddjob();
oddjob.setConfiguration(new XMLConfiguration(
"org/oddjob/arooa/types/ListSimpleWithNestedList.xml",
getClass().getClassLoader()));
ConsoleCapture console = new ConsoleCapture();
try (ConsoleCapture.Close close = console.captureConsole()) {
oddjob.run();
}
assertEquals(ParentState.COMPLETE,
oddjob.lastStateEvent().getState());
console.dump(logger);
String[] lines = console.getLines();
String[] expected = OddjobTestHelper.streamToLines(getClass(
).getResourceAsStream("ListSimpleWithNestedListOut.txt"));
assertEquals(expected[0], lines[0].trim());
assertEquals(expected[1], lines[1].trim());
assertEquals(expected[2], lines[2].trim());
assertEquals(3, lines.length);
oddjob.destroy();
}
public void testMergeFruitExample() {
Oddjob oddjob = new Oddjob();
oddjob.setConfiguration(new XMLConfiguration(
"org/oddjob/arooa/types/ListTypeMergeExample.xml",
getClass().getClassLoader()));
ConsoleCapture console = new ConsoleCapture();
try (ConsoleCapture.Close close = console.captureConsole()) {
oddjob.run();
}
assertEquals(ParentState.COMPLETE,
oddjob.lastStateEvent().getState());
console.dump(logger);
String[] lines = console.getLines();
String[] expected = OddjobTestHelper.streamToLines(getClass(
).getResourceAsStream("ListTypeMergeExampleOut.txt"));
for (int i = 0; i < expected.length; ++i) {
assertEquals(expected[i], lines[i].trim());
}
assertEquals(5, lines.length);
oddjob.destroy();
}
public void testTestConvertExample() {
Oddjob oddjob = new Oddjob();
oddjob.setConfiguration(new XMLConfiguration(
"org/oddjob/arooa/types/ListWithConversion.xml",
getClass().getClassLoader()));
ConsoleCapture console = new ConsoleCapture();
try (ConsoleCapture.Close close = console.captureConsole()) {
oddjob.run();
}
assertEquals(ParentState.COMPLETE,
oddjob.lastStateEvent().getState());
console.dump(logger);
String[] lines = console.getLines();
String[] expected = OddjobTestHelper.streamToLines(getClass(
).getResourceAsStream("ListWithConversionOut.txt"));
for (int i = 0; i < expected.length; ++i) {
assertEquals(expected[i], lines[i].trim());
}
assertEquals(5, lines.length);
oddjob.destroy();
}
public void testAddingToAListOnTheFly() {
Oddjob oddjob = new Oddjob();
oddjob.setConfiguration(new XMLConfiguration(
"org/oddjob/arooa/types/ListTypeAddWithSet.xml",
getClass().getClassLoader()));
ConsoleCapture console = new ConsoleCapture();
try (ConsoleCapture.Close close = console.captureConsole()) {
oddjob.run();
}
assertEquals(ParentState.COMPLETE,
oddjob.lastStateEvent().getState());
console.dump(logger);
String[] lines = console.getLines();
String[] expected = OddjobTestHelper.streamToLines(getClass(
).getResourceAsStream("ListTypeAddWithSetOut.txt"));
for (int i = 0; i < expected.length; ++i) {
assertEquals(expected[i], lines[i].trim());
}
assertEquals(2, lines.length);
oddjob.destroy();
}
}