Author: simonetripodi
Date: Sun May 15 19:50:19 2011
New Revision: 1103515
URL: http://svn.apache.org/viewvc?rev=1103515&view=rev
Log:
BeanPropertySetterRuleTestCase migrated to new Digester EDSL
Modified:
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/BeanPropertySetterRuleTestCase.java
Modified:
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/BeanPropertySetterRuleTestCase.java
URL:
http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/BeanPropertySetterRuleTestCase.java?rev=1103515&r1=1103514&r2=1103515&view=diff
==============================================================================
---
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/BeanPropertySetterRuleTestCase.java
(original)
+++
commons/sandbox/digester3/trunk/src/test/java/org/apache/commons/digester3/BeanPropertySetterRuleTestCase.java
Sun May 15 19:50:19 2011
@@ -18,7 +18,11 @@
package org.apache.commons.digester3;
-import static org.junit.Assert.*;
+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.assertTrue;
+import static org.junit.Assert.fail;
import java.io.IOException;
import java.io.Reader;
@@ -27,13 +31,7 @@ import java.lang.reflect.InvocationTarge
import java.util.ArrayList;
import java.util.List;
-import org.apache.commons.digester3.BeanPropertySetterRule;
-import org.apache.commons.digester3.Digester;
-import org.apache.commons.digester3.ExtendedBaseRules;
-import org.apache.commons.digester3.Rule;
-import org.apache.commons.digester3.RulesBase;
-import org.junit.After;
-import org.junit.Before;
+import org.apache.commons.digester3.binder.AbstractRulesModule;
import org.junit.Test;
import org.xml.sax.SAXException;
@@ -53,35 +51,6 @@ public class BeanPropertySetterRuleTestC
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
/**
@@ -93,25 +62,23 @@ public class BeanPropertySetterRuleTestC
throws SAXException, IOException
{
- List<Rule> callOrder = new ArrayList<Rule>();
+ final List<Rule> callOrder = new ArrayList<Rule>();
- // use the standard rules
- digester.setRules( new RulesBase() );
+ Digester digester = newLoader( new AbstractRulesModule()
+ {
- // add first test rule
- TestRule firstRule = new TestRule( "first" );
- firstRule.setOrder( callOrder );
- digester.addRule( "root/alpha", firstRule );
-
- // add second test rule
- TestRule secondRule = new TestRule( "second" );
- secondRule.setOrder( callOrder );
- digester.addRule( "root/alpha", secondRule );
-
- // add third test rule
- TestRule thirdRule = new TestRule( "third" );
- thirdRule.setOrder( callOrder );
- digester.addRule( "root/alpha", thirdRule );
+ @Override
+ protected void configure()
+ {
+ // add first test rule
+ forPattern( "root/alpha" ).addRuleCreatedBy( new
TestRule.TestRuleProvider( "first", callOrder ) );
+ // add second test rule
+ forPattern( "root/alpha" ).addRuleCreatedBy( new
TestRule.TestRuleProvider( "second", callOrder ) );
+ // add third test rule
+ forPattern( "root/alpha" ).addRuleCreatedBy( new
TestRule.TestRuleProvider( "third", callOrder ) );
+ }
+
+ }).newDigester();
digester.parse( xmlTestReader() );
@@ -154,35 +121,31 @@ public class BeanPropertySetterRuleTestC
public void testDigesterBodyTextStack()
throws SAXException, IOException
{
+ final List<Rule> callOrder = new ArrayList<Rule>();
- // use the standard rules
- digester.setRules( new RulesBase() );
+ Digester digester = newLoader(new AbstractRulesModule()
+ {
+
+ @Override
+ protected void configure()
+ {
+ forPattern( "root" ).addRuleCreatedBy( new
TestRule.TestRuleProvider( "root", callOrder ) );
+ forPattern( "root/alpha" ).addRuleCreatedBy( new
TestRule.TestRuleProvider( "root/alpha", callOrder ) );
+ forPattern( "root/beta" ).addRuleCreatedBy( new
TestRule.TestRuleProvider( "root/beta", callOrder ) );
+ forPattern( "root/gamma" ).addRuleCreatedBy( new
TestRule.TestRuleProvider( "root/gamma", callOrder ) );
+ }
- // add test rule to catch body text
- TestRule rootRule = new TestRule( "root" );
- digester.addRule( "root", rootRule );
-
- // add test rule to catch body text
- TestRule alphaRule = new TestRule( "root/alpha" );
- digester.addRule( "root/alpha", alphaRule );
-
- // add test rule to catch body text
- TestRule betaRule = new TestRule( "root/beta" );
- digester.addRule( "root/beta", betaRule );
-
- // add test rule to catch body text
- TestRule gammaRule = new TestRule( "root/gamma" );
- digester.addRule( "root/gamma", gammaRule );
+ }).newDigester();
digester.parse( xmlTestReader() );
- assertEquals( "Root body text not set correct.", "ROOT BODY",
rootRule.getBodyText() );
+ assertEquals( "Root body text not set correct.", "ROOT BODY", (
(TestRule) callOrder.get( 0 ) ).getBodyText() );
- assertEquals( "Alpha body text not set correct.", "ALPHA BODY",
alphaRule.getBodyText() );
+ assertEquals( "Alpha body text not set correct.", "ALPHA BODY", (
(TestRule) callOrder.get( 1 ) ).getBodyText() );
- assertEquals( "Beta body text not set correct.", "BETA BODY",
betaRule.getBodyText() );
+ assertEquals( "Beta body text not set correct.", "BETA BODY", (
(TestRule) callOrder.get( 4 ) ).getBodyText() );
- assertEquals( "Gamma body text not set correct.", "GAMMA BODY",
gammaRule.getBodyText() );
+ assertEquals( "Gamma body text not set correct.", "GAMMA BODY", (
(TestRule) callOrder.get( 7 ) ).getBodyText() );
}
@@ -193,23 +156,24 @@ public class BeanPropertySetterRuleTestC
public void testSetGivenProperty()
throws SAXException, IOException
{
+ Digester digester = newLoader(new AbstractRulesModule()
+ {
- // use the standard rules
- digester.setRules( new RulesBase() );
-
- // going to be setting properties on a SimpleTestBean
- digester.addObjectCreate( "root",
"org.apache.commons.digester3.SimpleTestBean" );
-
- // we'll set property alpha with the body text of root
- digester.addRule( "root", new BeanPropertySetterRule( "alpha" ) );
+ @Override
+ protected void configure()
+ {
+ forPattern( "root" ).createObject().ofType(
SimpleTestBean.class );
+ forPattern( "root" ).setBeanProperty().withName( "alpha" );
- // we'll set property beta with the body text of child element alpha
- digester.addRule( "root/alpha", new BeanPropertySetterRule( "beta" ) );
+ // we'll set property beta with the body text of child element
alpha
+ forPattern( "root/alpha" ).setBeanProperty().withName( "beta"
);
+ // we'll leave property gamma alone
- // we'll leave property gamma alone
+ // we'll set property delta (a write-only property) also
+ forPattern( "root/delta" ).setBeanProperty().withName( "delta"
);
+ }
- // we'll set property delta (a write-only property) also
- digester.addRule( "root/delta", new BeanPropertySetterRule( "delta" )
);
+ }).newDigester();
SimpleTestBean bean = digester.parse( xmlTestReader() );
@@ -230,12 +194,20 @@ public class BeanPropertySetterRuleTestC
@Test
public void testSetUnknownProperty()
{
+ 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" );
+ forPattern( "root" ).setBeanProperty().withName( "alpha" );
+
+ // attempt to set an unknown property name
+ forPattern( "root/alpha" ).setBeanProperty().withName(
"unknown" );
+ }
- // attempt to set an unknown property name
- digester.addRule( "root/alpha", new BeanPropertySetterRule( "unknown"
) );
+ }).newDigester();
// Attempt to parse the input
try
@@ -269,15 +241,17 @@ public class BeanPropertySetterRuleTestC
public void testAutomaticallySetProperties()
throws SAXException, IOException
{
+ Digester digester = newLoader(new AbstractRulesModule()
+ {
- // need the extended rules
- digester.setRules( new ExtendedBaseRules() );
-
- // 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" );
+ forPattern( "root/?" ).setBeanProperty();
+ }
- // match all children of root with this rule
- digester.addRule( "root/?", new BeanPropertySetterRule() );
+ }).newDigester( new ExtendedBaseRules() );
SimpleTestBean bean = digester.parse( xmlTestReader() );