package com.coderising.litestruts.parser.xml;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;
import java.io.InputStream;
/**
* Created by huitailang on 17/3/5.
* Xpath解析测试
*/
public class XPathParserTest {
@Test
public void shouldTestXPathParserMethods() throws Exception {
InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("nodelet_test.xml");
XPathParser parser = new XPathParser(inputStream, false, null, null);
assertEquals((Long) 1970l, parser.evalLong("/employee/birth_date/year"));
assertEquals((short) 6, (short) parser.evalShort("/employee/birth_date/month"));
assertEquals((Integer) 15, parser.evalInteger("/employee/birth_date/day"));
assertEquals((Float) 5.8f, parser.evalFloat("/employee/height"));
assertEquals((Double) 5.8d, parser.evalDouble("/employee/height"));
assertEquals("${id_var}", parser.evalString("/employee/@id"));
assertEquals(Boolean.TRUE, parser.evalBoolean("/employee/active"));
assertEquals("<id>${id_var}</id>", parser.evalNode("/employee/@id").toString().trim());
assertEquals(7, parser.evalNodes("/employee/*").size());
XNode node = parser.evalNode("/employee/height");
assertEquals("employee/height", node.getPath());
assertEquals("employee[${id_var}]_height", node.getValueBasedIdentifier());
}
@Test
public void testXPathParserMethods(){
InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("struts.xml");
XPathParser parser = new XPathParser(inputStream, false, null, null);
assertEquals(2, parser.evalNodes("/struts/*").size());
XNode node0 = parser.evalNodes("/struts/*").get(0);
assertEquals("login", node0.evalString("/struts/action/@name"));
assertEquals("com.coderising.litestruts.action.LoginAction", node0.evalString("/struts/action/@class"));
XNode subNode0 = node0.evalNodes("/*").get(0);
assertEquals("success", subNode0.evalString("/struts/action/result/@name"));
assertEquals("/jsp/homepage.jsp", subNode0.evalString("/struts/action/result"));
}
}