package com.opensymphony.xwork2.config.providers;
import com.opensymphony.xwork2.XWorkTestCase;
import org.easymock.MockControl;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import java.util.Map;
/**
* <code>XmlHelperTest</code>
*
* @author <a href="mailto:hermanns@aixcept.de">Rainer Hermanns</a>
* @version $Id$
*/
public class XmlHelperTest extends XWorkTestCase {
public void testGetContent1() throws Exception {
// set up Node
MockControl nodeControl = MockControl.createControl(Node.class);
Node mockNode = (Node) nodeControl.getMock();
nodeControl.expectAndDefaultReturn(mockNode.getNodeValue(), "testing testing 123");
nodeControl.expectAndDefaultReturn(mockNode.getNodeType(), Node.TEXT_NODE);
// set up NodeList
MockControl nodeListControl = MockControl.createControl(NodeList.class);
NodeList mockNodeList = (NodeList) nodeListControl.getMock();
nodeListControl.expectAndDefaultReturn(mockNodeList.getLength(), 1);
nodeListControl.expectAndDefaultReturn(mockNodeList.item(0), mockNode);
// set up Element
MockControl elementControl = MockControl.createControl(Element.class);
Element mockElement = (Element) elementControl.getMock();
elementControl.expectAndDefaultReturn(mockElement.getChildNodes(), mockNodeList);
nodeControl.replay();
nodeListControl.replay();
elementControl.replay();
String result = XmlHelper.getContent(mockElement);
nodeControl.verify();
nodeListControl.verify();
elementControl.verify();
assertEquals(result, "testing testing 123");
}
public void testGetContent2() throws Exception {
// set up Node
MockControl nodeControl1 = MockControl.createControl(Node.class);
Node mockNode1 = (Node) nodeControl1.getMock();
nodeControl1.expectAndDefaultReturn(mockNode1.getNodeValue(), "testing testing 123");
nodeControl1.expectAndDefaultReturn(mockNode1.getNodeType(), Node.TEXT_NODE);
MockControl nodeControl2 = MockControl.createControl(Node.class);
Node mockNode2 = (Node) nodeControl2.getMock();
nodeControl2.expectAndDefaultReturn(mockNode2.getNodeValue(), "comment 1");
nodeControl2.expectAndDefaultReturn(mockNode2.getNodeType(), Node.COMMENT_NODE);
MockControl nodeControl3 = MockControl.createControl(Node.class);
Node mockNode3 = (Node) nodeControl3.getMock();
nodeControl3.expectAndDefaultReturn(mockNode3.getNodeValue(), " tmjee ");
nodeControl3.expectAndDefaultReturn(mockNode3.getNodeType(), Node.TEXT_NODE);
MockControl nodeControl4 = MockControl.createControl(Node.class);
Node mockNode4 = (Node) nodeControl4.getMock();
nodeControl4.expectAndDefaultReturn(mockNode4.getNodeValue(), " phil ");
nodeControl4.expectAndDefaultReturn(mockNode4.getNodeType(), Node.TEXT_NODE);
MockControl nodeControl5 = MockControl.createControl(Node.class);
Node mockNode5 = (Node) nodeControl5.getMock();
nodeControl5.expectAndDefaultReturn(mockNode5.getNodeValue(), "comment 2");
nodeControl5.expectAndDefaultReturn(mockNode5.getNodeType(), Node.COMMENT_NODE);
MockControl nodeControl6 = MockControl.createControl(Node.class);
Node mockNode6 = (Node) nodeControl6.getMock();
nodeControl6.expectAndDefaultReturn(mockNode6.getNodeValue(), "comment 3");
nodeControl6.expectAndDefaultReturn(mockNode6.getNodeType(), Node.COMMENT_NODE);
// set up NodeList
MockControl nodeListControl = MockControl.createControl(NodeList.class);
NodeList mockNodeList = (NodeList) nodeListControl.getMock();
nodeListControl.expectAndDefaultReturn(mockNodeList.getLength(), 6);
mockNodeList.item(0);
nodeListControl.setReturnValue(mockNode1);
mockNodeList.item(1);
nodeListControl.setReturnValue(mockNode2);
mockNodeList.item(2);
nodeListControl.setDefaultReturnValue(mockNode3);
mockNodeList.item(3);
nodeListControl.setReturnValue(mockNode4);
mockNodeList.item(4);
nodeListControl.setReturnValue(mockNode5);
mockNodeList.item(5);
nodeListControl.setReturnValue(mockNode6);
// set up Element
MockControl elementControl = MockControl.createControl(Element.class);
Element mockElement = (Element) elementControl.getMock();
elementControl.expectAndDefaultReturn(mockElement.getChildNodes(), mockNodeList);
nodeControl1.replay();
nodeControl2.replay();
nodeControl3.replay();
nodeControl4.replay();
nodeControl5.replay();
nodeControl6.replay();
nodeListControl.replay();
elementControl.replay();
String result = XmlHelper.getContent(mockElement);
nodeControl1.verify();
nodeControl2.verify();
nodeControl3.verify();
nodeControl4.verify();
nodeControl5.verify();
nodeControl6.verify();
nodeListControl.verify();
elementControl.verify();
assertEquals(result, "testing testing 123tmjeephil");
}
public void testGetParams() throws Exception {
// <param name="param1">value1</param>
MockControl nodeControl1 = MockControl.createControl(Node.class);
Node mockNode1 = (Node) nodeControl1.getMock();
nodeControl1.expectAndDefaultReturn(mockNode1.getNodeValue(), "value1");
nodeControl1.expectAndDefaultReturn(mockNode1.getNodeType(), Node.TEXT_NODE);
MockControl nodeListControl1 = MockControl.createControl(NodeList.class);
NodeList mockNodeList1 = (NodeList) nodeListControl1.getMock();
nodeListControl1.expectAndDefaultReturn(mockNodeList1.getLength(), 1);
nodeListControl1.expectAndDefaultReturn(mockNodeList1.item(0), mockNode1);
MockControl paramControl1 = MockControl.createControl(Element.class);
Element mockParamElement1 = (Element) paramControl1.getMock();
mockParamElement1.getNodeName();
paramControl1.setReturnValue("param");
mockParamElement1.getNodeType();
paramControl1.setReturnValue(Node.ELEMENT_NODE);
mockParamElement1.getAttribute("name");
paramControl1.setReturnValue("param1");
mockParamElement1.getChildNodes();
paramControl1.setReturnValue(mockNodeList1);
nodeControl1.replay();
nodeListControl1.replay();
paramControl1.replay();
// <param name="param2">value2</param>
MockControl nodeControl2 = MockControl.createControl(Node.class);
Node mockNode2 = (Node) nodeControl2.getMock();
nodeControl2.expectAndDefaultReturn(mockNode2.getNodeValue(), "value2");
nodeControl2.expectAndDefaultReturn(mockNode2.getNodeType(), Node.TEXT_NODE);
MockControl nodeListControl2 = MockControl.createControl(NodeList.class);
NodeList mockNodeList2 = (NodeList) nodeListControl2.getMock();
nodeListControl2.expectAndDefaultReturn(mockNodeList2.getLength(), 1);
nodeListControl2.expectAndDefaultReturn(mockNodeList2.item(0), mockNode2);
MockControl paramControl2 = MockControl.createControl(Element.class);
Element mockParamElement2 = (Element) paramControl2.getMock();
mockParamElement2.getNodeName();
paramControl2.setReturnValue("param");
mockParamElement2.getNodeType();
paramControl2.setReturnValue(Node.ELEMENT_NODE);
mockParamElement2.getAttribute("name");
paramControl2.setReturnValue("param2");
mockParamElement2.getChildNodes();
paramControl2.setReturnValue(mockNodeList2);
nodeControl2.replay();
nodeListControl2.replay();
paramControl2.replay();
// <some_element>
// ...
// </some_element>
MockControl elementNodeListControl = MockControl.createControl(NodeList.class);
NodeList mockElementNodeList = (NodeList) elementNodeListControl.getMock();
elementNodeListControl.expectAndDefaultReturn(mockElementNodeList.getLength(), 2);
mockElementNodeList.item(0);
elementNodeListControl.setReturnValue(mockParamElement2);
mockElementNodeList.item(1);
elementNodeListControl.setReturnValue(mockParamElement1);
MockControl elementControl = MockControl.createControl(Element.class);
Element element = (Element) elementControl.getMock();
elementControl.expectAndDefaultReturn(element.getChildNodes(), mockElementNodeList);
elementNodeListControl.replay();
elementControl.replay();
Map params = XmlHelper.getParams(element);
nodeControl1.verify();
nodeListControl1.verify();
paramControl1.verify();
nodeControl2.verify();
nodeListControl2.verify();
paramControl2.verify();
elementNodeListControl.verify();
elementControl.verify();
assertNotNull(params);
assertEquals(params.size(), 2);
assertEquals(params.get("param1"), "value1");
assertEquals(params.get("param2"), "value2");
}
}