Author: skitching
Date: Sun Mar 6 14:42:30 2005
New Revision: 156347
URL: http://svn.apache.org/viewcvs?view=rev&rev=156347
Log:
Added tests for the "target offset" feature of CallMethodRule.
Patch provided by Wendy Smoak.
Modified:
jakarta/commons/proper/digester/trunk/src/test/org/apache/commons/digester/xmlrules/CallParamTestObject.java
jakarta/commons/proper/digester/trunk/src/test/org/apache/commons/digester/xmlrules/DigesterLoaderRulesTest.java
Modified:
jakarta/commons/proper/digester/trunk/src/test/org/apache/commons/digester/xmlrules/CallParamTestObject.java
URL:
http://svn.apache.org/viewcvs/jakarta/commons/proper/digester/trunk/src/test/org/apache/commons/digester/xmlrules/CallParamTestObject.java?view=diff&r1=156346&r2=156347
==============================================================================
---
jakarta/commons/proper/digester/trunk/src/test/org/apache/commons/digester/xmlrules/CallParamTestObject.java
(original)
+++
jakarta/commons/proper/digester/trunk/src/test/org/apache/commons/digester/xmlrules/CallParamTestObject.java
Sun Mar 6 14:42:30 2005
@@ -53,8 +53,17 @@
return middle;
}
-
-
+ public void setLeft(String left) {
+ this.left=left;
+ }
+
+ public void setRight(String right) {
+ this.right = right;
+ }
+
+ public void setMiddle(String middle) {
+ this.middle = middle;
+ }
public String toString() {
return "LEFT: " + left + " MIDDLE:" + middle + " RIGHT:" + right;
Modified:
jakarta/commons/proper/digester/trunk/src/test/org/apache/commons/digester/xmlrules/DigesterLoaderRulesTest.java
URL:
http://svn.apache.org/viewcvs/jakarta/commons/proper/digester/trunk/src/test/org/apache/commons/digester/xmlrules/DigesterLoaderRulesTest.java?view=diff&r1=156346&r2=156347
==============================================================================
---
jakarta/commons/proper/digester/trunk/src/test/org/apache/commons/digester/xmlrules/DigesterLoaderRulesTest.java
(original)
+++
jakarta/commons/proper/digester/trunk/src/test/org/apache/commons/digester/xmlrules/DigesterLoaderRulesTest.java
Sun Mar 6 14:42:30 2005
@@ -72,6 +72,61 @@
digester.parse(new InputSource(new StringReader(xml)));
assertEquals("First param", "", testObject.getLeft());
assertEquals("Param with default set", "tester.test",
testObject.getRight());
+ }
+
+ /** Test for call method rule with target offset */
+ public void testCallMethodRuleTargetOffset() throws Exception {
+ String xmlRules =
+ "<?xml version='1.0'?>" +
+ "<digester-rules>" +
+ " <pattern value='root'>" +
+ " <pattern value='call-top-object'>" +
+ " <call-method-rule " +
+ " methodname='setMiddle' " +
+ " targetoffset='0' " +
+ " paramcount='1' " +
+ " paramtypes='java.lang.String' />" +
+ " <call-param-rule paramnumber='0' />" +
+ " </pattern>" +
+ " <pattern value='call-parent-object'>" +
+ " <call-method-rule " +
+ " methodname='setLeft' " +
+ " targetoffset='1' " +
+ " paramcount='1' " +
+ " paramtypes='java.lang.String' />" +
+ " <call-param-rule paramnumber='0' />" +
+ " </pattern>" +
+ " <pattern value='call-root-object'>" +
+ " <call-method-rule " +
+ " methodname='setRight' " +
+ " targetoffset='-1' " +
+ " paramcount='1' " +
+ " paramtypes='java.lang.String' />" +
+ " <call-param-rule paramnumber='0' />" +
+ " </pattern>" +
+ " </pattern>" +
+ "</digester-rules>";
+ String xml =
+ "<?xml version='1.0'?>" +
+ "<root>" +
+ " <call-top-object>DataForTheTopObject</call-top-object>" +
+ "
<call-parent-object>DataForTheParentObject</call-parent-object>" +
+ " <call-root-object>DataForTheRootObject</call-root-object>" +
+ "</root>";
+
+ CallParamTestObject testObjectA = new CallParamTestObject();
+ CallParamTestObject testObjectB = new CallParamTestObject();
+ CallParamTestObject testObjectC = new CallParamTestObject();
+ Digester digester = DigesterLoader.createDigester(new InputSource(new
StringReader(xmlRules)));
+ digester.push( testObjectA );
+ digester.push( testObjectB );
+ digester.push( testObjectC );
+ digester.parse(new InputSource(new StringReader(xml)));
+
+ assertEquals("Top object invoked", "DataForTheTopObject",
testObjectC.getMiddle());
+ assertEquals("Parent object invoked", "DataForTheParentObject",
testObjectB.getLeft());
+ assertEquals("Root object invoked", "DataForTheRootObject",
testObjectA.getRight());
+
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]