assertEquals( "123", root.getAttribute("attr") );
// test parsing some simple code
new ExportDroolsJavaXml().parseJava(d, root, "// a comment\nRunInstanceWire rw = handler.generatedRunInstanceWire(sw, sw, event, operation); rw.setName(\"run\"); insert(rw); insert(\"a complicated string. with full stops. and line breaks;\");");
IterableElementList statements = xpath(root, "statement");
assertEquals(4, statements.getLength());
// first statement
// RunInstanceWire rw = handler.generatedRunInstanceWire(sw, sw, event, operation);
{
Element statement = (Element) statements.item(0);
Element assignment = xpathFirst(statement, "assignment");
assertNotNull(assignment);
assertEquals(0, assignment.getAttributes().getLength());
assertEquals(2, assignment.getChildNodes().getLength());
Element setVariable = (Element) assignment.getChildNodes().item(0);
assertEquals("set-variable", setVariable.getNodeName());
assertEquals(2, setVariable.getAttributes().getLength());
assertEquals("rw", setVariable.getAttribute("name"));
assertEquals("RunInstanceWire", setVariable.getAttribute("type"));
Element statement2 = (Element) assignment.getChildNodes().item(1);
assertEquals("statement", statement2.getNodeName());
assertEquals(0, statement2.getAttributes().getLength());
Element variable = xpathFirst(statement2, "variable");
assertEquals(1, variable.getAttributes().getLength());
assertEquals("handler", variable.getAttribute("name"));
Element method = xpathFirst(variable, "method");
assertEquals(1, method.getAttributes().getLength());
assertEquals("generatedRunInstanceWire", method.getAttribute("name"));
Element argumentList = xpathFirst(method, "argument-list");
assertEquals(0, argumentList.getAttributes().getLength());
assertEquals(4, argumentList.getChildNodes().getLength());
Element argument1 = (Element) argumentList.getChildNodes().item(0);
assertEquals("variable-argument", argument1.getNodeName());
assertEquals("sw", argument1.getAttribute("name"));
Element argument2 = (Element) argumentList.getChildNodes().item(1);
assertEquals("variable-argument", argument2.getNodeName());
assertEquals("sw", argument2.getAttribute("name"));
Element argument3 = (Element) argumentList.getChildNodes().item(2);
assertEquals("variable-argument", argument3.getNodeName());
assertEquals("event", argument3.getAttribute("name"));
Element argument4 = (Element) argumentList.getChildNodes().item(3);
assertEquals("variable-argument", argument4.getNodeName());
assertEquals("operation", argument4.getAttribute("name"));
}
// second statement
// rw.setName("run");
{
Element statement = (Element) statements.item(1);
Element variable = xpathFirst(statement, "variable");
assertEquals(1, variable.getAttributes().getLength());
assertEquals("rw", variable.getAttribute("name"));
Element method = xpathFirst(variable, "method");
assertEquals(1, method.getAttributes().getLength());
assertEquals("setName", method.getAttribute("name"));
Element argumentList = xpathFirst(method, "argument-list");
assertEquals(0, argumentList.getAttributes().getLength());
assertEquals(1, argumentList.getChildNodes().getLength());
Element argument = (Element) argumentList.getChildNodes().item(0);
assertEquals("string-argument", argument.getNodeName());
assertEquals("run", argument.getAttribute("value"));
}
// third statement
// insert(rw);
{
Element statement = (Element) statements.item(2);
Element method = xpathFirst(statement, "method");
assertEquals(1, method.getAttributes().getLength());
assertEquals("insert", method.getAttribute("name"));
Element argumentList = xpathFirst(method, "argument-list");
assertEquals(0, argumentList.getAttributes().getLength());
assertEquals(1, argumentList.getChildNodes().getLength());
Element argument = (Element) argumentList.getChildNodes().item(0);
assertEquals("variable-argument", argument.getNodeName());
assertEquals("rw", argument.getAttribute("name"));
}
// fourth statement
// insert("a complicated string. with full stops. and line breaks;");
{
Element statement = (Element) statements.item(3);
Element method = xpathFirst(statement, "method");
assertEquals(1, method.getAttributes().getLength());
assertEquals("insert", method.getAttribute("name"));