package net.kazed.nextaction.database.serialize;
import java.io.File;
import java.util.List;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
/**
* Unit test for XmlParser.
*
* @author Koert Zeilstra
*/
public class XmlParserTest {
private XmlParser xmlParser;
private RootHandler rootHandler;
@Before
public void setUp() throws Exception {
rootHandler = new RootHandler();
xmlParser = new XmlParser(new DummyXmlEncoder(), rootHandler);
}
@Test
public void testParseContext() {
File file = new File("src/test/resources/backup/backup-2008-12-30-03_09.nab");
xmlParser.parse(file);
List<ContextDto> contexts = rootHandler.getContextHandler().getContexts();
Assert.assertEquals(3, contexts.size());
ContextDto context0 = contexts.get(0);
Assert.assertEquals(new Long(1), context0.getId());
Assert.assertNull(context0.getParentId());
Assert.assertEquals("test", context0.getName());
ContextDto context1 = contexts.get(1);
Assert.assertEquals(new Long(2), context1.getId());
Assert.assertEquals(new Long(1), context1.getParentId());
Assert.assertEquals("test", context1.getName());
}
@Test
public void testParse() {
File file = new File("src/test/resources/backup/backup-2008-12-31-08_27.nab");
xmlParser.parse(file);
List<ContextDto> contexts = rootHandler.getContextHandler().getContexts();
Assert.assertEquals(4, contexts.size());
ContextDto context0 = contexts.get(0);
Assert.assertEquals(new Long(5), context0.getId());
Assert.assertNull(context0.getParentId());
Assert.assertEquals("test", context0.getName());
ContextDto context2 = contexts.get(2);
Assert.assertEquals(new Long(7), context2.getId());
Assert.assertEquals(new Long(1), context2.getParentId());
Assert.assertEquals("test7", context2.getName());
List<TaskDto> tasks = rootHandler.getTaskHandler().getTasks();
Assert.assertEquals(4, contexts.size());
TaskDto task0 = tasks.get(0);
Assert.assertEquals(new Integer(1), task0.id);
Assert.assertNull(task0.parentTaskId);
Assert.assertEquals("test", task0.description);
TaskDto task2 = tasks.get(2);
Assert.assertEquals(new Integer(3), task2.id);
Assert.assertEquals(new Integer(1), task2.parentTaskId);
Assert.assertEquals("test 2", task2.description);
Assert.assertEquals("Task details", task2.details);
Assert.assertEquals(new Integer(6), task2.contextId);
Assert.assertTrue(task2.completed);
}
private class RootHandler extends AbstractElementHandler {
private ContextHandler contextHandler = new ContextHandler();
private TaskHandler taskHandler = new TaskHandler();
public RootHandler() {
super();
addElementHandler("nextaction", this);
addElementHandler("context", contextHandler);
addElementHandler("task", taskHandler);
}
public ContextHandler getContextHandler() {
return contextHandler;
}
public TaskHandler getTaskHandler() {
return taskHandler;
}
}
}
|