[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