package org.springframework.roo.support.util;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.junit.Test;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
/**
* Unit test of {@link DomUtils}
*
* @author Andrew Swan
* @since 1.2.0
*/
public class DomUtilsTest {
private static final String DEFAULT_TEXT = "foo";
private static final String NODE_TEXT = "bar";
private static final String XML_AFTER_REMOVAL =
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><top><middle/></top>";
private static final String XML_BEFORE_REMOVAL =
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><top><middle><bottom id=\"1\" /><bottom id=\"2\" /></middle></top>";
@Test
public void testGetTextContentOfNonNullNode() {
// Set up
final Node mockNode = mock(Node.class);
when(mockNode.getTextContent()).thenReturn(NODE_TEXT);
assertEquals(NODE_TEXT, DomUtils.getTextContent(mockNode, DEFAULT_TEXT));
}
@Test
public void testGetTextContentOfNullNode() {
assertEquals(DEFAULT_TEXT, DomUtils.getTextContent(null, DEFAULT_TEXT));
}
@Test
public void testRemoveElements() throws Exception {
// Set up
final Element root = XmlUtils.stringToElement(XML_BEFORE_REMOVAL);
final Element middle = DomUtils.getChildElementByTagName(root, "middle");
// Invoke
DomUtils.removeElements("bottom", middle);
// Check
assertEquals(XmlUtils.nodeToString(XmlUtils.stringToElement(XML_AFTER_REMOVAL)),
XmlUtils.nodeToString(root));
}
}