[jboss-svn-commits] JBL Code SVN: r24660 - in labs/jbossrules/trunk/drools-pipeline: drools-transformer-xstream/src/test/java/org/drools/runtime/pipeline/impl and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jan 13 01:14:43 EST 2009
Author: mark.proctor at jboss.com
Date: 2009-01-13 01:14:42 -0500 (Tue, 13 Jan 2009)
New Revision: 24660
Added:
labs/jbossrules/trunk/drools-pipeline/drools-transformer-smooks/src/test/java/org/drools/runtime/pipeline/impl/SmooksFactTest.java
Modified:
labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/test/java/org/drools/runtime/pipeline/impl/XStreamFactTest.java
Log:
JBRULES-1903 Pipeline support for DataLoaders and Feeders
-Added Fact test for Smooks
Added: labs/jbossrules/trunk/drools-pipeline/drools-transformer-smooks/src/test/java/org/drools/runtime/pipeline/impl/SmooksFactTest.java
===================================================================
--- labs/jbossrules/trunk/drools-pipeline/drools-transformer-smooks/src/test/java/org/drools/runtime/pipeline/impl/SmooksFactTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-pipeline/drools-transformer-smooks/src/test/java/org/drools/runtime/pipeline/impl/SmooksFactTest.java 2009-01-13 06:14:42 UTC (rev 24660)
@@ -0,0 +1,112 @@
+package org.drools.runtime.pipeline.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.transform.stream.StreamSource;
+
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.ResourceType;
+import org.drools.io.ResourceFactory;
+import org.drools.runtime.StatefulKnowledgeSession;
+import org.drools.runtime.pipeline.Action;
+import org.drools.runtime.pipeline.KnowledgeRuntimeCommand;
+import org.drools.runtime.pipeline.Pipeline;
+import org.drools.runtime.pipeline.PipelineFactory;
+import org.drools.runtime.pipeline.ResultHandler;
+import org.drools.runtime.pipeline.Transformer;
+import org.drools.runtime.rule.FactHandle;
+import org.milyn.Smooks;
+
+import junit.framework.TestCase;
+
+public class SmooksFactTest extends TestCase {
+ public void testFact() throws Exception {
+ String xml = "<org.drools.runtime.pipeline.impl.Root><children><example.OrderItem><price>8.9</price><productId>111</productId><quantity>2</quantity></example.OrderItem><example.OrderItem><price>5.2</price><productId>222</productId><quantity>7</quantity></example.OrderItem></children></org.drools.runtime.pipeline.impl.Root>";
+
+ KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+
+ kbuilder.add( ResourceFactory.newClassPathResource( "test_SmooksNestedIterable.drl",
+ SmooksFactTest.class ),
+ ResourceType.DRL );
+
+ assertFalse( kbuilder.hasErrors() );
+
+ assertFalse( kbuilder.hasErrors() );
+
+ KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+ kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+ StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+
+ Action executeResultHandler = PipelineFactory.newExecuteResultHandler();
+
+ KnowledgeRuntimeCommand insertStage = PipelineFactory.newStatefulKnowledgeSessionInsert();
+ insertStage.setReceiver( executeResultHandler );
+
+ Smooks smooks = new Smooks( getClass().getResourceAsStream( "smooks-config.xml" ) );
+
+ Transformer transformer = PipelineFactory.newSmooksFromSourceTransformer( smooks,
+ "root" );
+ transformer.setReceiver( insertStage );
+
+ Pipeline pipeline = PipelineFactory.newStatefulKnowledgeSessionPipeline( ksession );
+ pipeline.setReceiver( transformer );
+
+ ResultHandlerImpl resultHandler = new ResultHandlerImpl();
+ pipeline.insert( new StreamSource( getClass().getResourceAsStream( "SmooksNestedIterable.xml" ) ),
+ resultHandler );
+
+ FactHandle factHandle = ( FactHandle ) ((Map)resultHandler.getObject()).keySet().iterator().next();
+ assertNotNull( factHandle );
+
+ // now round trip that fact
+ Action executeResult = PipelineFactory.newExecuteResultHandler();
+
+ Action assignAsResult = PipelineFactory.newAssignObjectAsResult();
+ assignAsResult.setReceiver( executeResult );
+
+ transformer = PipelineFactory.newSmooksToSourceTransformer( smooks );
+ transformer.setReceiver( assignAsResult );
+
+ KnowledgeRuntimeCommand getObject = PipelineFactory.newStatefulKnowledgeSessionGetObject();
+ getObject.setReceiver( transformer );
+
+ pipeline = PipelineFactory.newStatefulKnowledgeSessionPipeline( ksession );
+ pipeline.setReceiver( getObject );
+
+ resultHandler = new ResultHandlerImpl();
+ pipeline.insert( factHandle, resultHandler );
+
+ assertEquals( xml,
+ resultHandler.getObject() );
+ }
+
+ private static void assertEqualsIgnoreWhitespace(final String expected,
+ final String actual) {
+ final String cleanExpected = expected.replaceAll( "\\s+",
+ "" );
+ final String cleanActual = actual.replaceAll( "\\s+",
+ "" );
+ assertEquals( cleanExpected,
+ cleanActual );
+ }
+
+ public static class ResultHandlerImpl
+ implements
+ ResultHandler {
+ Object object;
+
+ public void handleResult(Object object) {
+ this.object = object;
+ }
+
+ public Object getObject() {
+ return this.object;
+ }
+ }
+}
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-01-13 05:52:05 UTC (rev 24659)
+++ labs/jbossrules/trunk/drools-pipeline/drools-transformer-xstream/src/test/java/org/drools/runtime/pipeline/impl/XStreamFactTest.java 2009-01-13 06:14:42 UTC (rev 24660)
@@ -69,7 +69,7 @@
assertNotNull( factHandle );
- // now round trip that global
+ // now round trip that fact
Action executeResult = PipelineFactory.newExecuteResultHandler();
Action assignAsResult = PipelineFactory.newAssignObjectAsResult();
More information about the jboss-svn-commits
mailing list