[jboss-svn-commits] JBL Code SVN: r25757 - labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/test/java/org/drools/runtime/pipeline/impl.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Mar 19 22:40:44 EDT 2009
Author: mark.proctor at jboss.com
Date: 2009-03-19 22:40:41 -0400 (Thu, 19 Mar 2009)
New Revision: 25757
Modified:
labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/test/java/org/drools/runtime/pipeline/impl/XStreamBatchExecutionTest.java
labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/test/java/org/drools/runtime/pipeline/impl/XStreamFactTest.java
labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/test/java/org/drools/runtime/pipeline/impl/XStreamGlobalTest.java
Log:
-hopefully now xml is no longer whitespace or element order dependent.
Modified: labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/test/java/org/drools/runtime/pipeline/impl/XStreamBatchExecutionTest.java
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/test/java/org/drools/runtime/pipeline/impl/XStreamBatchExecutionTest.java 2009-03-20 00:57:49 UTC (rev 25756)
+++ labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/test/java/org/drools/runtime/pipeline/impl/XStreamBatchExecutionTest.java 2009-03-20 02:40:41 UTC (rev 25757)
@@ -9,7 +9,13 @@
import java.util.List;
import java.util.Set;
+import junit.framework.TestCase;
+
+import org.custommonkey.xmlunit.Diff;
+import org.custommonkey.xmlunit.XMLAssert;
import org.custommonkey.xmlunit.XMLTestCase;
+import org.custommonkey.xmlunit.XMLUnit;
+import org.custommonkey.xmlunit.examples.RecursiveElementNameAndTextQualifier;
import org.drools.Cheese;
import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactory;
@@ -32,8 +38,30 @@
import org.drools.runtime.pipeline.Transformer;
import org.xml.sax.SAXException;
-public class XStreamBatchExecutionTest extends XMLTestCase {
+public class XStreamBatchExecutionTest extends TestCase {
+ protected void setUp() throws Exception {
+ XMLUnit.setIgnoreComments( true );
+ XMLUnit.setIgnoreWhitespace( true );
+ XMLUnit.setIgnoreAttributeOrder( true );
+ XMLUnit.setNormalizeWhitespace( true );
+ XMLUnit.setNormalize( true );
+ }
+
+ private void assertXMLEqual(String expectedXml,
+ String resultXml) {
+ try {
+ Diff diff = new Diff( expectedXml,
+ resultXml );
+ diff.overrideElementQualifier( new RecursiveElementNameAndTextQualifier() );
+ XMLAssert.assertXMLEqual( diff,
+ true );
+ } catch ( Exception e ) {
+ throw new RuntimeException( "XML Assertion failure",
+ e );
+ }
+ }
+
public void testInsertObject() throws Exception {
String str = "";
str += "package org.drools \n";
@@ -44,7 +72,7 @@
str += " \n";
str += " then \n";
str += " $c.setPrice( $c.getPrice() + 5 ); \n";
- str += "end\n";
+ str += "end\n";
String inXml = "";
inXml += "<batch-execution>";
@@ -56,31 +84,33 @@
inXml += " </org.drools.Cheese>";
inXml += " </insert>";
inXml += "</batch-execution>";
-
+
StatelessKnowledgeSession ksession = getSession2( ResourceFactory.newByteArrayResource( str.getBytes() ) );
- ResultHandlerImpl resultHandler = new ResultHandlerImpl();
- getPipeline(ksession).insert( inXml, resultHandler );
- String outXml = ( String ) resultHandler.getObject();
-
+ ResultHandlerImpl resultHandler = new ResultHandlerImpl();
+ getPipeline( ksession ).insert( inXml,
+ resultHandler );
+ String outXml = (String) resultHandler.getObject();
+
String expectedXml = "";
expectedXml += "<batch-execution-results>\n";
expectedXml += " <result identifier=\"outStilton\">\n";
expectedXml += " <org.drools.Cheese>\n";
expectedXml += " <type>stilton</type>\n";
- expectedXml += " <oldPrice>0</oldPrice>\n";
+ expectedXml += " <oldPrice>0</oldPrice>\n";
expectedXml += " <price>30</price>\n";
expectedXml += " </org.drools.Cheese>\n";
expectedXml += " </result>\n";
expectedXml += "</batch-execution-results>\n";
-
- assertXMLEqual(expectedXml, outXml );
-
- BatchExecutionResults result = ( BatchExecutionResults ) BatchExecutionHelper.newXStreamMarshaller().fromXML( outXml );
- Cheese stilton = ( Cheese ) result.getValue( "outStilton" );
+
+ assertXMLEqual( expectedXml,
+ outXml );
+
+ BatchExecutionResults result = (BatchExecutionResults) BatchExecutionHelper.newXStreamMarshaller().fromXML( outXml );
+ Cheese stilton = (Cheese) result.getValue( "outStilton" );
assertEquals( 30,
- stilton.getPrice() );
+ stilton.getPrice() );
}
-
+
public void testInsertElements() throws Exception {
String str = "";
str += "package org.drools \n";
@@ -93,13 +123,13 @@
str += " then \n";
str += " $c.setPrice( $c.getPrice() + 5 ); \n";
str += " list.add( $c );";
- str += "end\n";
+ str += "end\n";
String inXml = "";
inXml += "<batch-execution>";
inXml += " <set-global identifier='list' out='true'>";
inXml += " <list/>";
- inXml += " </set-global>";
+ inXml += " </set-global>";
inXml += " <insert-elements>";
inXml += " <org.drools.Cheese>";
inXml += " <type>stilton</type>";
@@ -111,47 +141,52 @@
inXml += " <price>30</price>";
inXml += " <oldPrice>0</oldPrice>";
inXml += " </org.drools.Cheese>";
- inXml += " </insert-elements>";
+ inXml += " </insert-elements>";
inXml += "</batch-execution>";
-
+
StatelessKnowledgeSession ksession = getSession2( ResourceFactory.newByteArrayResource( str.getBytes() ) );
- ResultHandlerImpl resultHandler = new ResultHandlerImpl();
- getPipeline(ksession).insert( inXml, resultHandler );
- String outXml = ( String ) resultHandler.getObject();
-
+ ResultHandlerImpl resultHandler = new ResultHandlerImpl();
+ getPipeline( ksession ).insert( inXml,
+ resultHandler );
+ String outXml = (String) resultHandler.getObject();
+
String expectedXml = "";
expectedXml += "<batch-execution-results>\n";
expectedXml += " <result identifier='list'>\n";
expectedXml += " <list>\n";
expectedXml += " <org.drools.Cheese>\n";
expectedXml += " <type>stilton</type>\n";
- expectedXml += " <price>35</price>\n";
- expectedXml += " <oldPrice>0</oldPrice>\n";
+ expectedXml += " <price>35</price>\n";
+ expectedXml += " <oldPrice>0</oldPrice>\n";
expectedXml += " </org.drools.Cheese>\n";
expectedXml += " <org.drools.Cheese>\n";
- expectedXml += " <type>stilton</type>\n";
+ expectedXml += " <type>stilton</type>\n";
expectedXml += " <price>30</price>\n";
- expectedXml += " <oldPrice>0</oldPrice>\n";
+ expectedXml += " <oldPrice>0</oldPrice>\n";
expectedXml += " </org.drools.Cheese>\n";
- expectedXml += " </list>\n";
- expectedXml += " </result>\n";
+ expectedXml += " </list>\n";
+ expectedXml += " </result>\n";
expectedXml += "</batch-execution-results>\n";
-
- assertXMLEqual( expectedXml, outXml );
-
- BatchExecutionResults result = ( BatchExecutionResults ) BatchExecutionHelper.newXStreamMarshaller().fromXML( outXml );
-
- List list = ( List ) result.getValue( "list" );
- Cheese stilton25 = new Cheese( "stilton", 30);
- Cheese stilton30 = new Cheese( "stilton", 35);
-
+
+ assertXMLEqual( expectedXml,
+ outXml );
+
+ BatchExecutionResults result = (BatchExecutionResults) BatchExecutionHelper.newXStreamMarshaller().fromXML( outXml );
+
+ List list = (List) result.getValue( "list" );
+ Cheese stilton25 = new Cheese( "stilton",
+ 30 );
+ Cheese stilton30 = new Cheese( "stilton",
+ 35 );
+
Set expectedList = new HashSet();
expectedList.add( stilton25 );
expectedList.add( stilton30 );
-
- assertEquals( expectedList, new HashSet( list ));
- }
-
+
+ assertEquals( expectedList,
+ new HashSet( list ) );
+ }
+
public void testSetGlobal() throws Exception {
String str = "";
str += "package org.drools \n";
@@ -169,7 +204,7 @@
str += " list2.add( $c ); \n";
str += " list3.add( $c ); \n";
str += "end\n";
-
+
String inXml = "";
inXml += "<batch-execution>";
inXml += " <set-global identifier='list1'>";
@@ -192,10 +227,11 @@
StatelessKnowledgeSession ksession = getSession2( ResourceFactory.newByteArrayResource( str.getBytes() ) );
ResultHandlerImpl resultHandler = new ResultHandlerImpl();
- getPipeline(ksession).insert( inXml, resultHandler );
-
- String outXml = ( String ) resultHandler.getObject();
-
+ getPipeline( ksession ).insert( inXml,
+ resultHandler );
+
+ String outXml = (String) resultHandler.getObject();
+
String expectedXml = "";
expectedXml += "<batch-execution-results>\n";
expectedXml += " <result identifier='list2'>\n";
@@ -213,25 +249,29 @@
expectedXml += " </list>\n";
expectedXml += " </result>\n";
expectedXml += "</batch-execution-results>\n";
-
- assertXMLEqual(expectedXml, outXml );
-
- BatchExecutionResults result = ( BatchExecutionResults ) BatchExecutionHelper.newXStreamMarshaller().fromXML( outXml );
- Cheese stilton = new Cheese( "stilton", 30 );
-
+
+ assertXMLEqual( expectedXml,
+ outXml );
+
+ BatchExecutionResults result = (BatchExecutionResults) BatchExecutionHelper.newXStreamMarshaller().fromXML( outXml );
+ Cheese stilton = new Cheese( "stilton",
+ 30 );
+
assertNull( result.getValue( "list1" ) );
-
- List list2 = ( List ) result.getValue( "list2" );
- assertEquals( 1, list2.size() );
- assertEquals( stilton, list2.get( 0 ) );
-
-
-
- List list3 = ( List ) result.getValue( "outList3" );
- assertEquals( 1, list3.size() );
- assertEquals( stilton, list3.get( 0 ) );
- }
-
+
+ List list2 = (List) result.getValue( "list2" );
+ assertEquals( 1,
+ list2.size() );
+ assertEquals( stilton,
+ list2.get( 0 ) );
+
+ List list3 = (List) result.getValue( "outList3" );
+ assertEquals( 1,
+ list3.size() );
+ assertEquals( stilton,
+ list3.get( 0 ) );
+ }
+
public void testGetGlobal() throws Exception {
String str = "";
str += "package org.drools \n";
@@ -243,13 +283,13 @@
str += " \n";
str += " then \n";
str += " list.add( $c ); \n";
- str += "end\n";
+ str += "end\n";
String inXml = "";
inXml += "<batch-execution>";
inXml += " <set-global identifier='list'>";
inXml += " <list/>";
- inXml += " </set-global>";
+ inXml += " </set-global>";
inXml += " <insert>";
inXml += " <org.drools.Cheese>";
inXml += " <type>stilton</type>";
@@ -257,30 +297,32 @@
inXml += " <oldPrice>0</oldPrice>";
inXml += " </org.drools.Cheese>";
inXml += " </insert>";
- inXml += " <get-global identifier='list' out-identifier='out-list'/>";
+ inXml += " <get-global identifier='list' out-identifier='out-list'/>";
inXml += "</batch-execution>";
-
+
StatelessKnowledgeSession ksession = getSession2( ResourceFactory.newByteArrayResource( str.getBytes() ) );
- ResultHandlerImpl resultHandler = new ResultHandlerImpl();
- getPipeline(ksession).insert( inXml, resultHandler );
- String outXml = ( String ) resultHandler.getObject();
-
+ ResultHandlerImpl resultHandler = new ResultHandlerImpl();
+ getPipeline( ksession ).insert( inXml,
+ resultHandler );
+ String outXml = (String) resultHandler.getObject();
+
String expectedXml = "";
expectedXml += "<batch-execution-results>\n";
expectedXml += " <result identifier=\"out-list\">\n";
expectedXml += " <list>\n";
expectedXml += " <org.drools.Cheese>\n";
- expectedXml += " <type>stilton</type>\n";
+ expectedXml += " <type>stilton</type>\n";
expectedXml += " <price>25</price>\n";
- expectedXml += " <oldPrice>0</oldPrice>\n";
+ expectedXml += " <oldPrice>0</oldPrice>\n";
expectedXml += " </org.drools.Cheese>\n";
expectedXml += " </list>\n";
- expectedXml += " </result>\n";
+ expectedXml += " </result>\n";
expectedXml += "</batch-execution-results>\n";
-
- assertXMLEqual(expectedXml, outXml );
- }
-
+
+ assertXMLEqual( expectedXml,
+ outXml );
+ }
+
public void testGetObjects() throws Exception {
String str = "";
str += "package org.drools \n";
@@ -291,10 +333,10 @@
str += " \n";
str += " then \n";
str += " $c.setPrice( $c.getPrice() + 5 ); \n";
- str += "end\n";
+ str += "end\n";
String inXml = "";
- inXml += "<batch-execution>";
+ inXml += "<batch-execution>";
inXml += " <insert-elements>";
inXml += " <org.drools.Cheese>";
inXml += " <type>stilton</type>";
@@ -309,44 +351,48 @@
inXml += " </insert-elements>";
inXml += " <get-objects out-identifier='list' />";
inXml += "</batch-execution>";
-
+
StatelessKnowledgeSession ksession = getSession2( ResourceFactory.newByteArrayResource( str.getBytes() ) );
- ResultHandlerImpl resultHandler = new ResultHandlerImpl();
- getPipeline(ksession).insert( inXml, resultHandler );
- String outXml = ( String ) resultHandler.getObject();
-
+ ResultHandlerImpl resultHandler = new ResultHandlerImpl();
+ getPipeline( ksession ).insert( inXml,
+ resultHandler );
+ String outXml = (String) resultHandler.getObject();
+
String expectedXml = "";
- expectedXml += "<batch-execution-results>\n";
- expectedXml += " <result identifier='list'>\n";
- expectedXml += " <list>\n";
- expectedXml += " <org.drools.Cheese>\n";
- expectedXml += " <type>stilton</type>\n";
- expectedXml += " <price>30</price>\n";
- expectedXml += " <oldPrice>0</oldPrice>\n";
- expectedXml += " </org.drools.Cheese>\n";
- expectedXml += " <org.drools.Cheese>\n";
- expectedXml += " <type>stilton</type>\n";
- expectedXml += " <price>35</price>\n";
- expectedXml += " <oldPrice>0</oldPrice>\n";
- expectedXml += " </org.drools.Cheese>\n";
- expectedXml += " </list>\n";
- expectedXml += " </result>\n";
- expectedXml += "</batch-execution-results>\n";
+ expectedXml += "<batch-execution-results>";
+ expectedXml += " <result identifier='list'>";
+ expectedXml += " <list>";
+ expectedXml += " <org.drools.Cheese>";
+ expectedXml += " <type>stilton</type>";
+ expectedXml += " <price>30</price>";
+ expectedXml += " <oldPrice>0</oldPrice>";
+ expectedXml += " </org.drools.Cheese>";
+ expectedXml += " <org.drools.Cheese>";
+ expectedXml += " <type>stilton</type>";
+ expectedXml += " <price>35</price>";
+ expectedXml += " <oldPrice>0</oldPrice>";
+ expectedXml += " </org.drools.Cheese>";
+ expectedXml += " </list>";
+ expectedXml += " </result>";
+ expectedXml += "</batch-execution-results>";
assertXMLEqual( expectedXml, outXml );
-
- BatchExecutionResults result = ( BatchExecutionResults ) BatchExecutionHelper.newXStreamMarshaller().fromXML( outXml );
- List list = ( List ) result.getValue( "list" );
- Cheese stilton25 = new Cheese( "stilton", 30);
- Cheese stilton30 = new Cheese( "stilton", 35);
-
+
+ BatchExecutionResults result = (BatchExecutionResults) BatchExecutionHelper.newXStreamMarshaller().fromXML( outXml );
+ List list = (List) result.getValue( "list" );
+ Cheese stilton25 = new Cheese( "stilton",
+ 30 );
+ Cheese stilton30 = new Cheese( "stilton",
+ 35 );
+
Set expectedList = new HashSet();
expectedList.add( stilton25 );
expectedList.add( stilton30 );
-
- assertEquals( expectedList, new HashSet( list ));
+
+ assertEquals( expectedList,
+ new HashSet( list ) );
}
-
+
public void testQuery() throws Exception {
String str = "";
str += "package org.drools.test \n";
@@ -358,8 +404,8 @@
str += "query cheesesWithParams(String a, String b) \n";
str += " stilton : Cheese(type == a) \n";
str += " cheddar : Cheese(type == b, price == stilton.price) \n";
- str += "end\n";
-
+ str += "end\n";
+
String inXml = "";
inXml += "<batch-execution>";
inXml += " <insert>";
@@ -398,95 +444,104 @@
inXml += "</batch-execution>";
StatelessKnowledgeSession ksession = getSession2( ResourceFactory.newByteArrayResource( str.getBytes() ) );
- ResultHandlerImpl resultHandler = new ResultHandlerImpl();
- getPipeline(ksession).insert( inXml, resultHandler );
- String outXml = ( String ) resultHandler.getObject();
-
+ ResultHandlerImpl resultHandler = new ResultHandlerImpl();
+ getPipeline( ksession ).insert( inXml,
+ resultHandler );
+ String outXml = (String) resultHandler.getObject();
+
String expectedXml = "";
- expectedXml +="<batch-execution-results>\n";
- expectedXml +=" <result identifier='cheeses'>\n";
- expectedXml +=" <query-results>\n";
- expectedXml +=" <identifiers>\n";
- expectedXml +=" <identifier>stilton</identifier>\n";
- expectedXml +=" <identifier>cheddar</identifier>\n";
- expectedXml +=" </identifiers>\n";
- expectedXml +=" <row>\n";
- expectedXml +=" <org.drools.Cheese>\n";
- expectedXml +=" <type>stilton</type>\n";
- expectedXml +=" <price>2</price>\n";
- expectedXml +=" <oldPrice>0</oldPrice>\n";
- expectedXml +=" </org.drools.Cheese>\n";
- expectedXml +=" <org.drools.Cheese>\n";
- expectedXml +=" <type>cheddar</type>\n";
- expectedXml +=" <price>2</price>\n";
- expectedXml +=" <oldPrice>0</oldPrice>\n";
- expectedXml +=" </org.drools.Cheese>\n";
- expectedXml +=" </row>\n";
- expectedXml +=" <row>\n";
- expectedXml +=" <org.drools.Cheese>\n";
- expectedXml +=" <type>stilton</type>\n";
- expectedXml +=" <price>1</price>\n";
- expectedXml +=" <oldPrice>0</oldPrice>\n";
- expectedXml +=" </org.drools.Cheese>\n";
- expectedXml +=" <org.drools.Cheese>\n";
- expectedXml +=" <type>cheddar</type>\n";
- expectedXml +=" <price>1</price>\n";
- expectedXml +=" <oldPrice>0</oldPrice>\n";
- expectedXml +=" </org.drools.Cheese>\n";
- expectedXml +=" </row>\n";
- expectedXml +=" </query-results>\n";
- expectedXml +=" </result>\n";
- expectedXml +=" <result identifier='cheeses2'>\n";
- expectedXml +=" <query-results>\n";
- expectedXml +=" <identifiers>\n";
- expectedXml +=" <identifier>stilton</identifier>\n";
- expectedXml +=" <identifier>cheddar</identifier>\n";
- expectedXml +=" </identifiers>\n";
- expectedXml +=" <row>\n";
- expectedXml +=" <org.drools.Cheese reference=\"../../../../result/query-results/row/org.drools.Cheese\"/>\n";
- expectedXml +=" <org.drools.Cheese reference=\"../../../../result/query-results/row/org.drools.Cheese[2]\"/>\n";
- expectedXml +=" </row>\n";
- expectedXml +=" <row>\n";
- expectedXml +=" <org.drools.Cheese reference=\"../../../../result/query-results/row[2]/org.drools.Cheese\"/>\n";
- expectedXml +=" <org.drools.Cheese reference=\"../../../../result/query-results/row[2]/org.drools.Cheese[2]\"/>\n";
- expectedXml +=" </row>\n";
- expectedXml +=" </query-results>\n";
- expectedXml +=" </result>\n";
- expectedXml +="</batch-execution-results>\n";;
-
- assertXMLEqual(expectedXml, outXml );
-
- BatchExecutionResults batchResult = ( BatchExecutionResults ) BatchExecutionHelper.newXStreamMarshaller().fromXML( outXml );
-
- Cheese stilton1 = new Cheese( "stilton", 1);
- Cheese cheddar1 = new Cheese( "cheddar", 1);
- Cheese stilton2 = new Cheese( "stilton", 2);
- Cheese cheddar2 = new Cheese( "cheddar", 2);
-
+ expectedXml += "<batch-execution-results>\n";
+ expectedXml += " <result identifier='cheeses'>\n";
+ expectedXml += " <query-results>\n";
+ expectedXml += " <identifiers>\n";
+ expectedXml += " <identifier>stilton</identifier>\n";
+ expectedXml += " <identifier>cheddar</identifier>\n";
+ expectedXml += " </identifiers>\n";
+ expectedXml += " <row>\n";
+ expectedXml += " <org.drools.Cheese>\n";
+ expectedXml += " <type>stilton</type>\n";
+ expectedXml += " <price>2</price>\n";
+ expectedXml += " <oldPrice>0</oldPrice>\n";
+ expectedXml += " </org.drools.Cheese>\n";
+ expectedXml += " <org.drools.Cheese>\n";
+ expectedXml += " <type>cheddar</type>\n";
+ expectedXml += " <price>2</price>\n";
+ expectedXml += " <oldPrice>0</oldPrice>\n";
+ expectedXml += " </org.drools.Cheese>\n";
+ expectedXml += " </row>\n";
+ expectedXml += " <row>\n";
+ expectedXml += " <org.drools.Cheese>\n";
+ expectedXml += " <type>stilton</type>\n";
+ expectedXml += " <price>1</price>\n";
+ expectedXml += " <oldPrice>0</oldPrice>\n";
+ expectedXml += " </org.drools.Cheese>\n";
+ expectedXml += " <org.drools.Cheese>\n";
+ expectedXml += " <type>cheddar</type>\n";
+ expectedXml += " <price>1</price>\n";
+ expectedXml += " <oldPrice>0</oldPrice>\n";
+ expectedXml += " </org.drools.Cheese>\n";
+ expectedXml += " </row>\n";
+ expectedXml += " </query-results>\n";
+ expectedXml += " </result>\n";
+ expectedXml += " <result identifier='cheeses2'>\n";
+ expectedXml += " <query-results>\n";
+ expectedXml += " <identifiers>\n";
+ expectedXml += " <identifier>stilton</identifier>\n";
+ expectedXml += " <identifier>cheddar</identifier>\n";
+ expectedXml += " </identifiers>\n";
+ expectedXml += " <row>\n";
+ expectedXml += " <org.drools.Cheese reference=\"../../../../result/query-results/row/org.drools.Cheese\"/>\n";
+ expectedXml += " <org.drools.Cheese reference=\"../../../../result/query-results/row/org.drools.Cheese[2]\"/>\n";
+ expectedXml += " </row>\n";
+ expectedXml += " <row>\n";
+ expectedXml += " <org.drools.Cheese reference=\"../../../../result/query-results/row[2]/org.drools.Cheese\"/>\n";
+ expectedXml += " <org.drools.Cheese reference=\"../../../../result/query-results/row[2]/org.drools.Cheese[2]\"/>\n";
+ expectedXml += " </row>\n";
+ expectedXml += " </query-results>\n";
+ expectedXml += " </result>\n";
+ expectedXml += "</batch-execution-results>\n";;
+
+ assertXMLEqual( expectedXml,
+ outXml );
+
+ BatchExecutionResults batchResult = (BatchExecutionResults) BatchExecutionHelper.newXStreamMarshaller().fromXML( outXml );
+
+ Cheese stilton1 = new Cheese( "stilton",
+ 1 );
+ Cheese cheddar1 = new Cheese( "cheddar",
+ 1 );
+ Cheese stilton2 = new Cheese( "stilton",
+ 2 );
+ Cheese cheddar2 = new Cheese( "cheddar",
+ 2 );
+
Set set = new HashSet();
List list = new ArrayList();
- list.add(stilton1);
- list.add(cheddar1);
+ list.add( stilton1 );
+ list.add( cheddar1 );
set.add( list );
-
+
list = new ArrayList();
- list.add(stilton2);
- list.add(cheddar2);
+ list.add( stilton2 );
+ list.add( cheddar2 );
set.add( list );
-
- org.drools.runtime.rule.QueryResults results = ( org.drools.runtime.rule.QueryResults) batchResult.getValue( "cheeses" );
- assertEquals( 2, results.size() );
- assertEquals( 2, results.getIdentifiers().length );
+
+ org.drools.runtime.rule.QueryResults results = (org.drools.runtime.rule.QueryResults) batchResult.getValue( "cheeses" );
+ assertEquals( 2,
+ results.size() );
+ assertEquals( 2,
+ results.getIdentifiers().length );
Set newSet = new HashSet();
for ( org.drools.runtime.rule.QueryResultsRow result : results ) {
list = new ArrayList();
list.add( result.get( "stilton" ) );
- list.add( result.get( "cheddar" ));
+ list.add( result.get( "cheddar" ) );
newSet.add( list );
}
- assertEquals( set, newSet );
- }
-
+ assertEquals( set,
+ newSet );
+ }
+
public void testManualFireAllRules() throws Exception {
String str = "";
str += "package org.drools \n";
@@ -499,13 +554,13 @@
str += " then \n";
str += " $c.setPrice( $c.getPrice() + 5 ); \n";
str += " list.add( $c );";
- str += "end\n";
+ str += "end\n";
String inXml = "";
inXml += "<batch-execution>";
inXml += " <set-global identifier='list' out='true'>";
inXml += " <list/>";
- inXml += " </set-global>";
+ inXml += " </set-global>";
inXml += " <insert-elements>";
inXml += " <org.drools.Cheese>";
inXml += " <type>stilton</type>";
@@ -525,29 +580,30 @@
inXml += " <price>10</price>";
inXml += " <oldPrice>5</oldPrice>";
inXml += " </org.drools.Cheese>";
- inXml += " </insert>";
+ inXml += " </insert>";
inXml += "</batch-execution>";
-
+
StatelessKnowledgeSession ksession = getSession2( ResourceFactory.newByteArrayResource( str.getBytes() ) );
- ResultHandlerImpl resultHandler = new ResultHandlerImpl();
- getPipeline(ksession).insert( inXml, resultHandler );
- String outXml = ( String ) resultHandler.getObject();
-
+ ResultHandlerImpl resultHandler = new ResultHandlerImpl();
+ getPipeline( ksession ).insert( inXml,
+ resultHandler );
+ String outXml = (String) resultHandler.getObject();
+
String expectedXml = "";
expectedXml += "<batch-execution-results>\n";
expectedXml += " <result identifier='list'>\n";
expectedXml += " <list>\n";
expectedXml += " <org.drools.Cheese>\n";
expectedXml += " <type>stilton</type>\n";
- expectedXml += " <price>35</price>\n";
- expectedXml += " <oldPrice>0</oldPrice>\n";
+ expectedXml += " <price>35</price>\n";
+ expectedXml += " <oldPrice>0</oldPrice>\n";
expectedXml += " </org.drools.Cheese>\n";
expectedXml += " <org.drools.Cheese>\n";
- expectedXml += " <type>stilton</type>\n";
+ expectedXml += " <type>stilton</type>\n";
expectedXml += " <price>30</price>\n";
- expectedXml += " <oldPrice>0</oldPrice>\n";
+ expectedXml += " <oldPrice>0</oldPrice>\n";
expectedXml += " </org.drools.Cheese>\n";
- expectedXml += " </list>\n";
+ expectedXml += " </list>\n";
expectedXml += " </result>\n";
expectedXml += " <result identifier='outBrie'>\n";
expectedXml += " <org.drools.Cheese>\n";
@@ -555,81 +611,61 @@
expectedXml += " <price>10</price>\n";
expectedXml += " <oldPrice>5</oldPrice>\n";
expectedXml += " </org.drools.Cheese>\n";
- expectedXml += " </result>\n";
+ expectedXml += " </result>\n";
expectedXml += "</batch-execution-results>\n";
- assertXMLEqual( expectedXml, outXml );
-
- BatchExecutionResults result = ( BatchExecutionResults ) BatchExecutionHelper.newXStreamMarshaller().fromXML( outXml );
-
+ assertXMLEqual( expectedXml,
+ outXml );
+
+ BatchExecutionResults result = (BatchExecutionResults) BatchExecutionHelper.newXStreamMarshaller().fromXML( outXml );
+
// brie should not have been added to the list
- List list = ( List ) result.getValue( "list" );
- Cheese stilton25 = new Cheese( "stilton", 30);
- Cheese stilton30 = new Cheese( "stilton", 35);
-
+ List list = (List) result.getValue( "list" );
+ Cheese stilton25 = new Cheese( "stilton",
+ 30 );
+ Cheese stilton30 = new Cheese( "stilton",
+ 35 );
+
Set expectedList = new HashSet();
expectedList.add( stilton25 );
expectedList.add( stilton30 );
-
- assertEquals( expectedList, new HashSet( list ));
+ assertEquals( expectedList,
+ new HashSet( list ) );
+
// brie should not have changed
- Cheese brie10 = new Cheese( "brie", 10);
+ Cheese brie10 = new Cheese( "brie",
+ 10 );
brie10.setOldPrice( 5 );
- assertEquals( brie10, result.getValue( "outBrie" ) );
- }
-
- public void testProcess() throws SAXException, IOException {
+ assertEquals( brie10,
+ result.getValue( "outBrie" ) );
+ }
+
+ public void testProcess() throws SAXException,
+ IOException {
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
- Reader source = new StringReader(
- "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
- "<process xmlns=\"http://drools.org/drools-5.0/process\"\n" +
- " xmlns:xs=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
- " xs:schemaLocation=\"http://drools.org/drools-5.0/process drools-processes-5.0.xsd\"\n" +
- " type=\"RuleFlow\" name=\"flow\" id=\"org.drools.actions\" package-name=\"org.drools\" version=\"1\" >\n" +
- "\n" +
- " <header>\n" +
- " <imports>\n" +
- " <import name=\"org.drools.TestVariable\" />\n" +
- " </imports>\n" +
- " <globals>\n" +
- " <global identifier=\"list\" type=\"java.util.List\" />\n" +
- " </globals>\n" +
- " <variables>\n" +
- " <variable name=\"person\" >\n" +
- " <type name=\"org.drools.process.core.datatype.impl.type.ObjectDataType\" className=\"TestVariable\" />\n" +
- " </variable>\n" +
- " </variables>\n" +
- " </header>\n" +
- "\n" +
- " <nodes>\n" +
- " <start id=\"1\" name=\"Start\" />\n" +
- " <actionNode id=\"2\" name=\"MyActionNode\" >\n" +
- " <action type=\"expression\" dialect=\"mvel\" >System.out.println(\"Triggered\");\n" +
- "list.add(person.name);\n" +
- "</action>\n" +
- " </actionNode>\n" +
- " <end id=\"3\" name=\"End\" />\n" +
- " </nodes>\n" +
- "\n" +
- " <connections>\n" +
- " <connection from=\"1\" to=\"2\" />\n" +
- " <connection from=\"2\" to=\"3\" />\n" +
- " </connections>\n" +
- "\n" +
- "</process>");
- kbuilder.add( ResourceFactory.newReaderResource( source ), ResourceType.DRF );
- if ( kbuilder.hasErrors()) {
- fail ( kbuilder.getErrors().toString() );
+ Reader source = new StringReader( "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<process xmlns=\"http://drools.org/drools-5.0/process\"\n" + " xmlns:xs=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+ + " xs:schemaLocation=\"http://drools.org/drools-5.0/process drools-processes-5.0.xsd\"\n"
+ + " type=\"RuleFlow\" name=\"flow\" id=\"org.drools.actions\" package-name=\"org.drools\" version=\"1\" >\n" + "\n" + " <header>\n" + " <imports>\n"
+ + " <import name=\"org.drools.TestVariable\" />\n" + " </imports>\n" + " <globals>\n" + " <global identifier=\"list\" type=\"java.util.List\" />\n" + " </globals>\n" + " <variables>\n"
+ + " <variable name=\"person\" >\n" + " <type name=\"org.drools.process.core.datatype.impl.type.ObjectDataType\" className=\"TestVariable\" />\n" + " </variable>\n" + " </variables>\n"
+ + " </header>\n" + "\n" + " <nodes>\n" + " <start id=\"1\" name=\"Start\" />\n" + " <actionNode id=\"2\" name=\"MyActionNode\" >\n"
+ + " <action type=\"expression\" dialect=\"mvel\" >System.out.println(\"Triggered\");\n" + "list.add(person.name);\n" + "</action>\n" + " </actionNode>\n" + " <end id=\"3\" name=\"End\" />\n"
+ + " </nodes>\n" + "\n" + " <connections>\n" + " <connection from=\"1\" to=\"2\" />\n" + " <connection from=\"2\" to=\"3\" />\n" + " </connections>\n" + "\n" + "</process>" );
+ kbuilder.add( ResourceFactory.newReaderResource( source ),
+ ResourceType.DRF );
+ if ( kbuilder.hasErrors() ) {
+ fail( kbuilder.getErrors().toString() );
}
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
-
+
StatelessKnowledgeSession ksession = kbase.newStatelessKnowledgeSession();
List<String> list = new ArrayList<String>();
- ksession.setGlobal("list", list);
- TestVariable person = new TestVariable("John Doe");
-
+ ksession.setGlobal( "list",
+ list );
+ TestVariable person = new TestVariable( "John Doe" );
+
String inXml = "";
inXml += "<batch-execution>";
inXml += " <startProcess processId='org.drools.actions'>";
@@ -637,31 +673,34 @@
inXml += " <org.drools.TestVariable>";
inXml += " <name>John Doe</name>";
inXml += " </org.drools.TestVariable>";
- inXml += " </parameter>";
+ inXml += " </parameter>";
inXml += " </startProcess>";
- inXml += " <get-global identifier='list' out-identifier='out-list'/>";
+ inXml += " <get-global identifier='list' out-identifier='out-list'/>";
inXml += "</batch-execution>";
-
- ResultHandlerImpl resultHandler = new ResultHandlerImpl();
- getPipeline(ksession).insert( inXml, resultHandler );
- String outXml = ( String ) resultHandler.getObject();
- assertEquals(1, list.size());
- assertEquals("John Doe", list.get(0));
-
+ ResultHandlerImpl resultHandler = new ResultHandlerImpl();
+ getPipeline( ksession ).insert( inXml,
+ resultHandler );
+ String outXml = (String) resultHandler.getObject();
+
+ assertEquals( 1,
+ list.size() );
+ assertEquals( "John Doe",
+ list.get( 0 ) );
+
String expectedXml = "";
expectedXml += "<batch-execution-results>\n";
expectedXml += " <result identifier=\"out-list\">\n";
expectedXml += " <list>\n";
expectedXml += " <string>John Doe</string>\n";
expectedXml += " </list>\n";
- expectedXml += " </result>\n";
+ expectedXml += " </result>\n";
expectedXml += "</batch-execution-results>\n";
-
- assertXMLEqual(expectedXml, outXml );
+
+ assertXMLEqual( expectedXml,
+ outXml );
}
-
public void testInsertObjectWithDeclaredFact() throws Exception {
String str = "";
str += "package org.foo \n";
@@ -687,8 +726,9 @@
StatelessKnowledgeSession ksession = getSession2( ResourceFactory.newByteArrayResource( str.getBytes() ) );
ResultHandlerImpl resultHandler = new ResultHandlerImpl();
- getPipeline(ksession).insert( inXml, resultHandler );
- String outXml = ( String ) resultHandler.getObject();
+ getPipeline( ksession ).insert( inXml,
+ resultHandler );
+ String outXml = (String) resultHandler.getObject();
String expectedXml = "";
expectedXml += "<batch-execution-results>\n";
@@ -701,12 +741,11 @@
expectedXml += " </result>\n";
expectedXml += "</batch-execution-results>\n";
- assertXMLEqual(expectedXml, outXml );
+ assertXMLEqual( expectedXml,
+ outXml );
-
}
-
public void testInsertObjectStateful() throws Exception {
String str = "";
str += "package org.foo \n";
@@ -735,49 +774,47 @@
StatefulKnowledgeSession ksession = getSessionStateful( ResourceFactory.newByteArrayResource( str.getBytes() ) );
ResultHandlerImpl resultHandler = new ResultHandlerImpl();
- getPipelineStateful(ksession).insert( inXml, resultHandler );
+ getPipelineStateful( ksession ).insert( inXml,
+ resultHandler );
String nextXML = "<batch-execution><query out-identifier='matchingthings' name='results'/></batch-execution>";
- getPipelineStateful(ksession).insert( nextXML, resultHandler );
- String outXml = ( String ) resultHandler.getObject();
+ getPipelineStateful( ksession ).insert( nextXML,
+ resultHandler );
+ String outXml = (String) resultHandler.getObject();
-
//we have not fired the rules yet
- assertFalse(outXml.indexOf("<price>30</price>") > -1);
+ assertFalse( outXml.indexOf( "<price>30</price>" ) > -1 );
ksession.fireAllRules();
//ok lets try that again...
- getPipelineStateful(ksession).insert( nextXML, resultHandler );
- outXml = ( String ) resultHandler.getObject();
- assertTrue(outXml.indexOf("<price>30</price>") > -1);
+ getPipelineStateful( ksession ).insert( nextXML,
+ resultHandler );
+ outXml = (String) resultHandler.getObject();
+ assertTrue( outXml.indexOf( "<price>30</price>" ) > -1 );
}
-
-
-
+
private Pipeline getPipeline(StatelessKnowledgeSession ksession) {
Action executeResultHandler = PipelineFactory.newExecuteResultHandler();
-
+
Action assignResult = PipelineFactory.newAssignObjectAsResult();
assignResult.setReceiver( executeResultHandler );
-
+
Transformer outTransformer = PipelineFactory.newXStreamToXmlTransformer( BatchExecutionHelper.newXStreamMarshaller() );
outTransformer.setReceiver( assignResult );
KnowledgeRuntimeCommand batchExecution = PipelineFactory.newBatchExecutor();
batchExecution.setReceiver( outTransformer );
-
Transformer inTransformer = PipelineFactory.newXStreamFromXmlTransformer( BatchExecutionHelper.newXStreamMarshaller() );
inTransformer.setReceiver( batchExecution );
Pipeline pipeline = PipelineFactory.newStatelessKnowledgeSessionPipeline( ksession );
- pipeline.setReceiver( inTransformer );
-
+ pipeline.setReceiver( inTransformer );
+
return pipeline;
}
-
private Pipeline getPipelineStateful(StatefulKnowledgeSession ksession) {
Action executeResultHandler = PipelineFactory.newExecuteResultHandler();
@@ -790,7 +827,6 @@
KnowledgeRuntimeCommand batchExecution = PipelineFactory.newBatchExecutor();
batchExecution.setReceiver( outTransformer );
-
Transformer inTransformer = PipelineFactory.newXStreamFromXmlTransformer( BatchExecutionHelper.newXStreamMarshaller() );
inTransformer.setReceiver( batchExecution );
@@ -800,7 +836,6 @@
return pipeline;
}
-
public static class ResultHandlerImpl
implements
ResultHandler {
@@ -814,49 +849,45 @@
return this.object;
}
}
-
-
+
private StatelessKnowledgeSession getSession2(Resource resource) throws Exception {
KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
- kbuilder.add( resource, ResourceType.DRL );
-
- if (kbuilder.hasErrors() ) {
+ kbuilder.add( resource,
+ ResourceType.DRL );
+
+ if ( kbuilder.hasErrors() ) {
System.out.println( kbuilder.getErrors() );
}
-
+
assertFalse( kbuilder.hasErrors() );
Collection<KnowledgePackage> pkgs = kbuilder.getKnowledgePackages();
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
-
-
+
kbase.addKnowledgePackages( pkgs );
StatelessKnowledgeSession session = kbase.newStatelessKnowledgeSession();
return session;
}
+ private StatefulKnowledgeSession getSessionStateful(Resource resource) throws Exception {
+ KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+ kbuilder.add( resource,
+ ResourceType.DRL );
- private StatefulKnowledgeSession getSessionStateful(Resource resource) throws Exception {
- KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
- kbuilder.add( resource, ResourceType.DRL );
+ if ( kbuilder.hasErrors() ) {
+ System.out.println( kbuilder.getErrors() );
+ }
- if (kbuilder.hasErrors() ) {
- System.out.println( kbuilder.getErrors() );
- }
+ assertFalse( kbuilder.hasErrors() );
+ Collection<KnowledgePackage> pkgs = kbuilder.getKnowledgePackages();
- assertFalse( kbuilder.hasErrors() );
- Collection<KnowledgePackage> pkgs = kbuilder.getKnowledgePackages();
+ KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
- KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+ kbase.addKnowledgePackages( pkgs );
+ StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession();
-
- kbase.addKnowledgePackages( pkgs );
- StatefulKnowledgeSession session = kbase.newStatefulKnowledgeSession();
-
- return session;
+ return session;
}
-
-
}
Modified: labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/test/java/org/drools/runtime/pipeline/impl/XStreamFactTest.java
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/test/java/org/drools/runtime/pipeline/impl/XStreamFactTest.java 2009-03-20 00:57:49 UTC (rev 25756)
+++ labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/test/java/org/drools/runtime/pipeline/impl/XStreamFactTest.java 2009-03-20 02:40:41 UTC (rev 25757)
@@ -5,6 +5,9 @@
import junit.framework.TestCase;
import org.custommonkey.xmlunit.Diff;
+import org.custommonkey.xmlunit.XMLAssert;
+import org.custommonkey.xmlunit.XMLUnit;
+import org.custommonkey.xmlunit.examples.RecursiveElementNameAndTextQualifier;
import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactory;
import org.drools.builder.KnowledgeBuilder;
@@ -23,6 +26,30 @@
import com.thoughtworks.xstream.XStream;
public class XStreamFactTest extends TestCase {
+
+ protected void setUp() throws Exception {
+ XMLUnit.setIgnoreComments( true );
+ XMLUnit.setIgnoreWhitespace( true );
+ XMLUnit.setIgnoreAttributeOrder( true );
+ XMLUnit.setNormalizeWhitespace( true );
+ XMLUnit.setNormalize( true );
+ }
+
+ private void assertXMLEqual(String expectedXml,
+ String resultXml) {
+ try {
+ Diff diff = new Diff( expectedXml,
+ resultXml );
+ diff.overrideElementQualifier( new RecursiveElementNameAndTextQualifier() );
+ XMLAssert.assertXMLEqual( diff,
+ true );
+ } catch ( Exception e ) {
+ throw new RuntimeException( "XML Assertion failure",
+ e );
+ }
+ }
+
+
public void testFact() throws Exception {
String xml = "";
xml += "<list>\n";
@@ -85,7 +112,7 @@
resultHandler = new ResultHandlerImpl();
pipeline.insert( factHandle, resultHandler );
- assertTrue( new Diff( xml, (String) resultHandler.getObject() ).similar() );
+ assertXMLEqual( xml, (String) resultHandler.getObject() );
}
private static void assertEqualsIgnoreWhitespace(final String expected,
Modified: labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/test/java/org/drools/runtime/pipeline/impl/XStreamGlobalTest.java
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/test/java/org/drools/runtime/pipeline/impl/XStreamGlobalTest.java 2009-03-20 00:57:49 UTC (rev 25756)
+++ labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/test/java/org/drools/runtime/pipeline/impl/XStreamGlobalTest.java 2009-03-20 02:40:41 UTC (rev 25757)
@@ -3,6 +3,9 @@
import junit.framework.TestCase;
import org.custommonkey.xmlunit.Diff;
+import org.custommonkey.xmlunit.XMLAssert;
+import org.custommonkey.xmlunit.XMLUnit;
+import org.custommonkey.xmlunit.examples.RecursiveElementNameAndTextQualifier;
import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseFactory;
import org.drools.builder.KnowledgeBuilder;
@@ -20,6 +23,30 @@
import com.thoughtworks.xstream.XStream;
public class XStreamGlobalTest extends TestCase {
+
+ protected void setUp() throws Exception {
+ XMLUnit.setIgnoreComments( true );
+ XMLUnit.setIgnoreWhitespace( true );
+ XMLUnit.setIgnoreAttributeOrder( true );
+ XMLUnit.setNormalizeWhitespace( true );
+ XMLUnit.setNormalize( true );
+ }
+
+ private void assertXMLEqual(String expectedXml,
+ String resultXml) {
+ try {
+ Diff diff = new Diff( expectedXml,
+ resultXml );
+ diff.overrideElementQualifier( new RecursiveElementNameAndTextQualifier() );
+ XMLAssert.assertXMLEqual( diff,
+ true );
+ } catch ( Exception e ) {
+ throw new RuntimeException( "XML Assertion failure",
+ e );
+ }
+ }
+
+
public void testGlobal() throws Exception {
String xml = "";
xml += "<list>\n";
@@ -77,10 +104,7 @@
resultHandler = new ResultHandlerImpl();
pipeline.insert( "list", resultHandler );
- System.out.println(xml);
- System.out.println(resultHandler.getObject());
- System.out.println(new Diff( xml, (String) resultHandler.getObject() ));
- assertTrue( new Diff( xml, (String) resultHandler.getObject() ).similar() );
+ assertXMLEqual( xml, (String) resultHandler.getObject() );
}
private static void assertEqualsIgnoreWhitespace(final String expected,
More information about the jboss-svn-commits
mailing list