package org.simpleframework.xml.stream; import java.io.Reader; import java.io.StringReader; import junit.framework.TestCase; public class NodeBuilderTest extends TestCase { private static final String SOURCE = "<?xml version='1.0'?>\n" + "<root version='2.1' id='234'>\n" + " <list type='sorted'>\n" + " <entry name='1'>\n" + " <value>value 1</value>\n" + " </entry>\n" + " <entry name='2'>\n" + " <value>value 2</value>\n" + " </entry>\n" + " <entry name='3'>\n" + " <value>value 3</value>\n" + " </entry>\n" + " </list>\n" + " <object name='name'>\n" + " <integer>123</integer>\n" + " <object name='key'>\n" + " <integer>12345</integer>\n" + " </object>\n" + " </object>\n" + "</root>"; public void testNodeAdapter() throws Exception { Reader reader = new StringReader(SOURCE); InputNode event = NodeBuilder.read(reader); assertTrue(event.isRoot()); assertEquals("root", event.getName()); assertEquals("2.1", event.getAttribute("version").getValue()); assertEquals("234", event.getAttribute("id").getValue()); NodeMap attrList = event.getAttributes(); assertEquals("2.1", attrList.get("version").getValue()); assertEquals("234", attrList.get("id").getValue()); InputNode list = event.getNext(); assertFalse(list.isRoot()); assertEquals("list", list.getName()); assertEquals("sorted", list.getAttribute("type").getValue()); InputNode entry = list.getNext(); InputNode value = list.getNext(); // same as entry.getNext() assertEquals("entry", entry.getName()); assertEquals("1", entry.getAttribute("name").getValue()); assertEquals("value", value.getName()); assertEquals("value 1", value.getValue()); assertEquals(null, value.getAttribute("name")); assertEquals(null, entry.getNext()); assertEquals(null, value.getNext()); entry = list.getNext(); value = entry.getNext(); // same as list.getNext() assertEquals("entry", entry.getName()); assertEquals("2", entry.getAttribute("name").getValue()); assertEquals("value", value.getName()); assertEquals("value 2", value.getValue()); assertEquals(null, value.getAttribute("name")); assertEquals(null, entry.getNext()); entry = list.getNext(); value = entry.getNext(); // same as list.getNext() assertEquals("entry", entry.getName()); assertEquals("3", entry.getAttribute("name").getValue()); assertEquals("value", value.getName()); assertEquals("value 3", value.getValue()); assertEquals(null, value.getAttribute("name")); assertEquals(null, entry.getNext()); assertEquals(null, list.getNext()); InputNode object = event.getNext(); InputNode integer = event.getNext(); // same as object.getNext() assertEquals("object", object.getName()); assertEquals("name", object.getAttribute("name").getValue()); assertEquals("integer", integer.getName()); assertEquals("123", integer.getValue()); object = object.getNext(); // same as event.getNext() integer = object.getNext(); assertEquals("object", object.getName()); assertEquals("key", object.getAttribute("name").getValue()); assertEquals("integer", integer.getName()); assertEquals("12345", integer.getValue()); } }