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]

Reply via email to