You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by si...@apache.org on 2011/05/21 18:01:54 UTC

svn commit: r1125734 - /commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/SetNestedPropertiesRuleTestCase.java

Author: simonetripodi
Date: Sat May 21 16:01:54 2011
New Revision: 1125734

URL: http://svn.apache.org/viewvc?rev=1125734&view=rev
Log:
SetNestedPropertiesRuleTestCase test case moved to Digester EDSL

Modified:
    commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/SetNestedPropertiesRuleTestCase.java

Modified: commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/SetNestedPropertiesRuleTestCase.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/SetNestedPropertiesRuleTestCase.java?rev=1125734&r1=1125733&r2=1125734&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/SetNestedPropertiesRuleTestCase.java (original)
+++ commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/SetNestedPropertiesRuleTestCase.java Sat May 21 16:01:54 2011
@@ -18,6 +18,7 @@
 
 package org.apache.commons.digester3;
 
+import static org.apache.commons.digester3.binder.DigesterLoader.newLoader;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.fail;
@@ -26,12 +27,7 @@ import java.io.IOException;
 import java.io.Reader;
 import java.io.StringReader;
 
-import org.apache.commons.digester3.Digester;
-import org.apache.commons.digester3.Rule;
-import org.apache.commons.digester3.RulesBase;
-import org.apache.commons.digester3.SetNestedPropertiesRule;
-import org.junit.After;
-import org.junit.Before;
+import org.apache.commons.digester3.binder.AbstractRulesModule;
 import org.junit.Test;
 import org.xml.sax.SAXException;
 
@@ -51,35 +47,6 @@ public class SetNestedPropertiesRuleTest
     protected final static String TEST_XML = "<?xml version='1.0'?>" + "<root>ROOT BODY" + "<alpha>ALPHA BODY</alpha>"
         + "<beta>BETA BODY</beta>" + "<gamma>GAMMA BODY</gamma>" + "<delta>DELTA BODY</delta>" + "</root>";
 
-    /**
-     * The digester instance we will be processing.
-     */
-    protected Digester digester = null;
-
-    // --------------------------------------------------- Overall Test Methods
-
-    /**
-     * Set up instance variables required by this test case.
-     */
-    @Before
-    public void setUp()
-    {
-
-        digester = new Digester();
-
-    }
-
-    /**
-     * Tear down instance variables required by this test case.
-     */
-    @After
-    public void tearDown()
-    {
-
-        digester = null;
-
-    }
-
     // ------------------------------------------------ Individual Test Methods
 
     /**
@@ -89,12 +56,18 @@ public class SetNestedPropertiesRuleTest
     public void testAutomaticallySetProperties()
         throws SAXException, IOException
     {
+        Digester digester = newLoader( new AbstractRulesModule()
+        {
 
-        // going to be setting properties on a SimpleTestBean
-        digester.addObjectCreate( "root", "org.apache.commons.digester3.SimpleTestBean" );
+            @Override
+            protected void configure()
+            {
+                forPattern( "root" ).createObject().ofType( "org.apache.commons.digester3.SimpleTestBean" )
+                    .then()
+                    .setNestedProperties();
+            }
 
-        // match all children of root with this rule
-        digester.addRule( "root", new SetNestedPropertiesRule() );
+        }).newDigester();
 
         SimpleTestBean bean = digester.parse( xmlTestReader() );
 
@@ -115,14 +88,20 @@ public class SetNestedPropertiesRuleTest
     public void testMandatoryProperties()
         throws SAXException, IOException
     {
+        Digester digester = newLoader( new AbstractRulesModule()
+        {
 
-        String TEST_XML = "<?xml version='1.0'?>" + "<root>ROOT BODY" + "<badprop>ALPHA BODY</badprop>" + "</root>";
+            @Override
+            protected void configure()
+            {
+                forPattern( "root" ).createObject().ofType( "org.apache.commons.digester3.SimpleTestBean" )
+                    .then()
+                    .setNestedProperties();
+            }
 
-        // going to be setting properties on a SimpleTestBean
-        digester.addObjectCreate( "root", "org.apache.commons.digester3.SimpleTestBean" );
+        }).newDigester();
 
-        // match all children of root with this rule
-        digester.addRule( "root", new SetNestedPropertiesRule() );
+        String TEST_XML = "<?xml version='1.0'?>" + "<root>ROOT BODY" + "<badprop>ALPHA BODY</badprop>" + "</root>";
 
         try
         {
@@ -154,24 +133,26 @@ public class SetNestedPropertiesRuleTest
     public void testCustomisedProperties1()
         throws SAXException, IOException
     {
+        Digester digester = newLoader( new AbstractRulesModule()
+        {
+
+            @Override
+            protected void configure()
+            {
+                forPattern( "root" ).createObject().ofType( "org.apache.commons.digester3.SimpleTestBean" )
+                    .then()
+                    .setNestedProperties()
+                        .addAlias( "alpha", null )
+                        .addAlias( "gamma-alt", "gamma" )
+                        .addAlias( "delta", null );
+            }
+
+        }).newDigester();
 
         String TEST_XML =
             "<?xml version='1.0'?>" + "<root>ROOT BODY" + "<alpha>ALPHA BODY</alpha>" + "<beta>BETA BODY</beta>"
                 + "<gamma-alt>GAMMA BODY</gamma-alt>" + "<delta>DELTA BODY</delta>" + "</root>";
 
-        // going to be setting properties on a SimpleTestBean
-        digester.addObjectCreate( "root", "org.apache.commons.digester3.SimpleTestBean" );
-
-        // ignore the "alpha" element (target=null)
-        // don't remap the "beta" element
-        // map the gamma-alt element into the gamma property
-        // ignore the delta element (no matching element in array)
-
-        Rule rule =
-            new SetNestedPropertiesRule( new String[] { "alpha", "gamma-alt", "delta" }, new String[] { null, "gamma" } );
-
-        digester.addRule( "root", rule );
-
         SimpleTestBean bean = digester.parse( new StringReader( TEST_XML ) );
 
         // check properties are set correctly
@@ -194,18 +175,24 @@ public class SetNestedPropertiesRuleTest
     public void testCustomisedProperties2a()
         throws SAXException, IOException
     {
+        Digester digester = newLoader( new AbstractRulesModule()
+        {
+
+            @Override
+            protected void configure()
+            {
+                forPattern( "root" ).createObject().ofType( "org.apache.commons.digester3.SimpleTestBean" )
+                    .then()
+                    .setNestedProperties()
+                        .addAlias( "alpha", null );
+            }
+
+        }).newDigester();
 
         String TEST_XML =
             "<?xml version='1.0'?>" + "<root>ROOT BODY" + "<alpha>ALPHA BODY</alpha>" + "<beta>BETA BODY</beta>"
                 + "<gamma>GAMMA BODY</gamma>" + "<delta>DELTA BODY</delta>" + "</root>";
 
-        // going to be setting properties on a SimpleTestBean
-        digester.addObjectCreate( "root", "org.apache.commons.digester3.SimpleTestBean" );
-
-        // ignore the "alpha" element (target=null)
-        Rule rule = new SetNestedPropertiesRule( "alpha", null );
-        digester.addRule( "root", rule );
-
         SimpleTestBean bean = digester.parse( new StringReader( TEST_XML ) );
 
         // check properties are set correctly
@@ -228,19 +215,24 @@ public class SetNestedPropertiesRuleTest
     public void testCustomisedProperties2b()
         throws SAXException, IOException
     {
+        Digester digester = newLoader( new AbstractRulesModule()
+        {
+
+            @Override
+            protected void configure()
+            {
+                forPattern( "root" ).createObject().ofType( "org.apache.commons.digester3.SimpleTestBean" )
+                    .then()
+                    .setNestedProperties()
+                        .addAlias( "alpha-alt", "alpha" );
+            }
+
+        }).newDigester();
 
         String TEST_XML =
             "<?xml version='1.0'?>" + "<root>ROOT BODY" + "<alpha-alt>ALPHA BODY</alpha-alt>"
                 + "<beta>BETA BODY</beta>" + "<gamma>GAMMA BODY</gamma>" + "<delta>DELTA BODY</delta>" + "</root>";
 
-        // going to be setting properties on a SimpleTestBean
-        digester.addObjectCreate( "root", "org.apache.commons.digester3.SimpleTestBean" );
-
-        // map the contents of the alpha-alt xml child into the
-        // "alpha" java property.
-        Rule rule = new SetNestedPropertiesRule( "alpha-alt", "alpha" );
-        digester.addRule( "root", rule );
-
         SimpleTestBean bean = digester.parse( new StringReader( TEST_XML ) );
 
         // check properties are set correctly
@@ -268,6 +260,21 @@ public class SetNestedPropertiesRuleTest
     public void testMultiRuleMatch()
         throws SAXException, IOException
     {
+        Digester digester = newLoader( new AbstractRulesModule()
+        {
+
+            @Override
+            protected void configure()
+            {
+                forPattern( "root/testbean" ).createObject().ofType( "org.apache.commons.digester3.SimpleTestBean" )
+                    .then()
+                    .setProperties()
+                    .then()
+                    .setNestedProperties();
+                forPattern( "root/testbean/gamma/prop" ).setProperty( "name" ).extractingValueFromAttribute( "value" );
+            }
+
+        }).newDigester();
 
         String testXml =
             "<?xml version='1.0'?>" + "<root>" + "<testbean alpha='alpha-attr'>ROOT BODY" + "<beta>BETA BODY</beta>"
@@ -276,13 +283,6 @@ public class SetNestedPropertiesRuleTest
 
         Reader reader = new StringReader( testXml );
 
-        // going to be setting properties on a SimpleTestBean
-        digester.addObjectCreate( "root/testbean", "org.apache.commons.digester3.SimpleTestBean" );
-
-        digester.addRule( "root/testbean", new SetNestedPropertiesRule() );
-        digester.addSetProperties( "root/testbean" );
-        digester.addSetProperty( "root/testbean/gamma/prop", "name", "value" );
-
         SimpleTestBean bean = digester.parse( reader );
 
         assertNotNull( "No object created", bean );
@@ -307,6 +307,18 @@ public class SetNestedPropertiesRuleTest
     public void testUnknownChildrenCausesException()
         throws SAXException, IOException
     {
+        Digester digester = newLoader( new AbstractRulesModule()
+        {
+
+            @Override
+            protected void configure()
+            {
+                forPattern( "root" ).createObject().ofType( "org.apache.commons.digester3.SimpleTestBean" )
+                    .then()
+                    .setNestedProperties();
+            }
+
+        }).newDigester();
 
         String testXml =
             "<?xml version='1.0'?>" + "<root>" + "<testbean>" + "<beta>BETA BODY</beta>" + "<foo>GAMMA</foo>"
@@ -314,12 +326,6 @@ public class SetNestedPropertiesRuleTest
 
         Reader reader = new StringReader( testXml );
 
-        // going to be setting properties on a SimpleTestBean
-        digester.addObjectCreate( "root", "org.apache.commons.digester3.SimpleTestBean" );
-
-        Rule rule = new SetNestedPropertiesRule();
-        digester.addRule( "root", rule );
-
         try
         {
             SimpleTestBean bean = digester.parse( reader );
@@ -344,6 +350,18 @@ public class SetNestedPropertiesRuleTest
     public void testUnknownChildrenExceptionOverride()
         throws SAXException, IOException
     {
+        Digester digester = newLoader( new AbstractRulesModule()
+        {
+
+            @Override
+            protected void configure()
+            {
+                forPattern( "root" ).createObject().ofType( "org.apache.commons.digester3.SimpleTestBean" )
+                    .then()
+                    .setNestedProperties().allowUnknownChildElements( true );
+            }
+
+        }).newDigester();
 
         String testXml =
             "<?xml version='1.0'?>" + "<root>" + "<testbean>" + "<beta>BETA BODY</beta>" + "<foo>GAMMA</foo>"
@@ -351,13 +369,6 @@ public class SetNestedPropertiesRuleTest
 
         Reader reader = new StringReader( testXml );
 
-        // going to be setting properties on a SimpleTestBean
-        digester.addObjectCreate( "root", "org.apache.commons.digester3.SimpleTestBean" );
-
-        SetNestedPropertiesRule rule = new SetNestedPropertiesRule();
-        rule.setAllowUnknownChildElements( true );
-        digester.addRule( "root", rule );
-
         SimpleTestBean bean = digester.parse( reader );
         assertNotNull( bean );
     }
@@ -372,6 +383,18 @@ public class SetNestedPropertiesRuleTest
     public void testRecursiveNestedProperties()
         throws SAXException, IOException
     {
+        Digester digester = newLoader( new AbstractRulesModule()
+        {
+
+            @Override
+            protected void configure()
+            {
+                forPattern( "*/testbean" ).createObject().ofType( "org.apache.commons.digester3.SimpleTestBean" )
+                    .then()
+                    .setNestedProperties().allowUnknownChildElements( true );
+            }
+
+        }).newDigester();
 
         String testXml =
             "<?xml version='1.0'?>" + "<testbean>" + "<beta>BETA BODY</beta>" + "<testbean>" + "<beta>BETA BODY</beta>"
@@ -379,13 +402,6 @@ public class SetNestedPropertiesRuleTest
 
         Reader reader = new StringReader( testXml );
 
-        // going to be setting properties on a SimpleTestBean
-        digester.addObjectCreate( "*/testbean", "org.apache.commons.digester3.SimpleTestBean" );
-
-        SetNestedPropertiesRule rule = new SetNestedPropertiesRule();
-        rule.setAllowUnknownChildElements( true );
-        digester.addRule( "*/testbean", rule );
-
         SimpleTestBean bean = digester.parse( reader );
         assertNotNull( bean );
     }