1 46 47 package groovy.util; 48 49 50 import groovy.util.GroovyTestCase; 51 import groovy.util.Node; 52 53 import java.util.ArrayList ; 54 import java.util.HashMap ; 55 import java.util.List ; 56 import java.util.Map ; 57 58 59 65 public class NodeTest extends GroovyTestCase { 66 67 public void testSimpleAttribute() { 68 Node attribute = new Node(null, "transactional"); 69 assertEquals("name", "transactional", attribute.name()); 70 assertEquals("attributes", 0, attribute.attributes().size()); 71 assertEquals("value", 0, attribute.children().size()); 72 assertEquals("text", "", attribute.text()); 73 74 dump(attribute); 75 } 76 77 public void testAttributeWithAttributes() { 78 Map attributes = new HashMap (); 79 attributes.put("a", "xyz"); 80 81 Node attribute = new Node(null, "foo", attributes); 82 assertEquals("name", "foo", attribute.name()); 83 assertEquals("attributes", 1, attribute.attributes().size()); 84 assertEquals("value", 0, attribute.children().size()); 85 assertEquals("text", "", attribute.text()); 86 87 dump(attribute); 88 } 89 90 public void testAttributeWithText() { 91 Node attribute = new Node(null, "foo", "the text"); 92 assertEquals("name", "foo", attribute.name()); 93 assertEquals("attributes", 0, attribute.attributes().size()); 94 assertEquals("value", 1, attribute.children().size()); 95 assertEquals("text", "the text", attribute.text()); 96 97 dump(attribute); 98 } 99 100 public void testAttributeWithAttributesAndChildren() { 101 Map attributes = new HashMap (); 102 attributes.put("a", "xyz"); 103 104 List children = new ArrayList (); 105 children.add(new Node(null, "person", "James")); 106 children.add(new Node(null, "person", "Bob")); 107 children.add("someText"); 108 109 Node attribute = new Node(null, "foo", attributes, children); 110 assertEquals("name", "foo", attribute.name()); 111 assertEquals("attributes", 1, attribute.attributes().size()); 112 assertEquals("value", 3, attribute.children().size()); 113 assertEquals("text", "someText", attribute.text()); 114 115 dump(attribute); 116 } 117 118 public void testAttributeWithAttributesAndChildrenWithMixedText() { 119 Map attributes = new HashMap (); 120 attributes.put("a", "xyz"); 121 122 List children = new ArrayList (); 123 children.add("someText"); 124 Node node1 = new Node(null, "person", "James"); 125 children.add(node1); 126 children.add("moreText"); 127 Node node2 = new Node(null, "person", "Bob"); 128 children.add(node2); 129 children.add("moreText"); 130 131 Node attribute = new Node(null, "foo", attributes, children); 132 assertEquals("name", "foo", attribute.name()); 133 assertEquals("attributes", 1, attribute.attributes().size()); 134 assertEquals("value", 5, attribute.children().size()); 135 assertEquals("text", "someTextmoreTextmoreText", attribute.text()); 136 137 138 List list = (List ) attribute.get("person"); 140 assertEquals("Expected list size: " + list, 2, list.size()); 141 142 assertEquals("Node1", node1, list.get(0)); 143 assertEquals("Node2", node2, list.get(1)); 144 145 dump(attribute); 146 } 147 148 protected void dump(Node node) { 149 NodePrinter printer = new NodePrinter(); 150 printer.print(node); 151 } 152 153 } 154 | Popular Tags |