final Element root = new Element(NAME); root.addElement(NAME); root.addComment("Hello"); assertEquals(1, root.getChildrenCount(Comment.class)); root.addComment("World"); assertEquals(1, root.getChildrenCount(Comment.class)); root.addComment("Foo", false); assertEquals(2, root.getChildrenCount(Comment.class)); root.mergeComments(); root.addComment("Hello", false); root.addElement(NAME); root.addComment("Hello", false); root.addComment("Hello", false); root.addText("Hello", false); root.addComment("Hello", false); root.addComment("Hello", false); root.addText("Hello", false); root.addText("Hello", false); root.addComment("hello", false); root.addComment("hello", false); root.addText("Hello", false); root.addText("Hello", false); root.addComment("hello", false); root.addComment("hello", false); root.addText("Hello", false); root.addText("Hello", false);
@Test public void testChangeComments() { final Element root = new Element(NAME); root.addComment("hello", false); root.addComment("HELLO", false); root.changeComments(String::toUpperCase); assertEquals(2, root.getChildrenCount()); assertEquals("HELLO", root.getChildAt(Comment.class, 0).getContent()); assertEquals("HELLO", root.getChildAt(Comment.class, 1).getContent()); root.removeChildren(); final Element child1 = root.addElement(NAME1); final Element child2 = root.addElement(NAME2); final Element child3 = root.addElement(NAME1); child1.addComment("hello"); child2.addComment("hello"); child3.addComment("hel"); child3.addComment("lo", false); assertEquals(2, child3.getChildrenCount()); root.changeComments(String::toUpperCase, true); assertEquals(2, child3.getChildrenCount()); assertEquals("HELLO", child1.getChild(Comment.class).getContent()); assertEquals("HEL", child3.getChildAt(Comment.class, 0).getContent()); }
@Test public void testConstructors() { final Element e = new Element(NAME); assertEquals(null, e.getParent()); assertEquals(ElementContentType.EMPTY, e.getContentType()); e.addComment("comment", true); assertEquals(ElementContentType.NON_TEXT, e.getContentType()); }
@Test public void testContentType() { final Element e = new Element(NAME); assertEquals(ElementContentType.EMPTY, e.getContentType()); e.addComment("Hello"); assertEquals(ElementContentType.NON_TEXT, e.getContentType()); e.removeChildren(); assertEquals(ElementContentType.EMPTY, e.getContentType()); e.addText("Hello"); assertEquals(ElementContentType.TEXT, e.getContentType()); e.addText("World"); assertEquals(ElementContentType.TEXT, e.getContentType()); e.addComment("Hello"); assertEquals(ElementContentType.MIXED, e.getContentType()); e.removeChildren(); assertEquals(ElementContentType.EMPTY, e.getContentType()); e.addElement("child"); assertEquals(ElementContentType.NON_TEXT, e.getContentType()); e.addComment("Hello"); assertEquals(ElementContentType.NON_TEXT, e.getContentType()); e.addText("World"); assertEquals(ElementContentType.MIXED, e.getContentType()); }
final Element e = new Element(NAME); assertEquals(null, e.getText()); e.addComment("Hello"); assertEquals(null, e.getText()); e.removeChildAt(0); assertEquals(null, e.getText()); e.addComment("Comment"); e.addText("Hello"); assertEquals("Hello", e.getText()); e.addComment("Comment"); e.addText("World", false); assertEquals("HelloWorld", e.getText());
@Test public void testRemoveChildren() { final Element root = new Element(NAME); final Element child = root.addElement(NAME); root.removeChildren(); assertEquals(0, root.getChildrenCount()); assertFalse(root.removeChild(child)); root.addElement(NAME); root.addComment("Hello"); root.addElement(NAME); root.addText("World"); root.addElement(NAME); root.removeComments(); assertEquals(4, root.getChildrenCount()); root.removeTexts(); assertEquals(3, root.getChildrenCount()); root.addElement(NAME1); root.removeElementsNamed(NAME); assertEquals(1, root.getChildrenCount()); }
@Test public void testChildren() { final Element e = new Element(NAME); assertEquals(null, e.getDocument()); assertEquals(e, e.getRootElement()); assertEquals(e, e.getRootChild()); final Element c0 = e.addElement(NAME1); final Element c1 = e.addElement(NAME1); final Text c2 = e.addText("Hello"); final Comment c3 = e.addComment("Hello"); assertEquals(c0, e.getChildAt(0)); assertEquals(c1, e.getChildAt(1)); assertEquals(c0, e.getElementNamed(NAME1)); assertEquals(null, c2.getDocument()); assertEquals(e, c3.getRootElement()); assertEquals(e, c3.getRootChild()); assertEquals(e, c2.getParent()); assertEquals(e, c2.getParent(Element.class)); assertEquals(4, e.getChildrenCount()); assertEquals(4, e.getChildrenCount(Node.class)); assertEquals(2, e.getChildrenCount(Element.class)); assertEquals(1, e.getChildrenCount(Comment.class)); assertEquals(1, e.getChildrenCount(Text.class)); assertEquals(2, e.getChildrenCount(Parent.class)); assertEquals(4, e.getChildrenCount(Child.class)); assertEquals(2, e.getChildrenCount(Leaf.class)); }
@Test public void testGetChildren() { final Element root = new Element(NAME); assertEquals(null, root.getLastChild()); final Element child1 = root.addElement(NAME1); final Element child2 = root.addElement(NAME2); final Element child3 = root.addElement(NAME1); child3.addAttribute(NAME, VALUE); final Comment child4 = root.addComment("Hello"); assertEquals(4, root.getChildrenCount()); assertTrue(root.hasChildren(Element.class)); assertTrue(root.hasChildren(Comment.class)); assertFalse(root.hasChildren(Text.class)); assertEquals(child4, root.getLastChild()); assertEquals(child1, root.getChild(Element.class)); assertEquals(child1, root.getElementNamed(NAME1)); assertEquals(3, root.getChildrenCount(Element.class)); assertEquals(2, root.getChildrenCount(Element.class, Element.named(NAME1))); assertEquals(child2, root.getChild(Element.class, Element.named(NAME2))); assertEquals(child2, root.getChildAt(Element.class, Element.named(NAME2), 0)); assertEquals(null, root.getChildAt(Element.class, Element.named(NAME2), 1)); assertEquals(child3, root.getChildAt(2)); assertEquals(child3, root.getChildAt(Element.class, 2)); assertEquals(child4, root.getChildAt(Comment.class, 0)); assertEquals(3, Iterables.size(root.getElements())); assertEquals(1, Iterables.size(root.getComments())); assertEquals(0, Iterables.size(root.getTexts())); assertEquals(child3, root.getElementNamedWithAttribute(NAME1, NAME, VALUE)); }