[jboss-svn-commits] JBL Code SVN: r26535 - in labs/jbossrules/trunk/drools-compiler/src/test: resources/org/drools/integrationtests and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu May 14 09:09:11 EDT 2009
Author: tirelli
Date: 2009-05-14 09:09:11 -0400 (Thu, 14 May 2009)
New Revision: 26535
Added:
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_AccumulateSerialization.drl
Modified:
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/AccumulateTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MarshallingTest.java
Log:
JBRULES-1855: adding test case
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/AccumulateTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/AccumulateTest.java 2009-05-14 12:42:01 UTC (rev 26534)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/AccumulateTest.java 2009-05-14 13:09:11 UTC (rev 26535)
@@ -14,6 +14,8 @@
import org.drools.Cheese;
import org.drools.Cheesery;
import org.drools.FactHandle;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
import org.drools.Order;
import org.drools.OrderItem;
import org.drools.OuterClass;
@@ -24,12 +26,17 @@
import org.drools.RuntimeDroolsException;
import org.drools.StatefulSession;
import org.drools.WorkingMemory;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.ResourceType;
import org.drools.compiler.DrlParser;
import org.drools.compiler.DroolsParserException;
import org.drools.compiler.PackageBuilder;
import org.drools.compiler.PackageBuilderConfiguration;
+import org.drools.io.ResourceFactory;
import org.drools.lang.descr.PackageDescr;
import org.drools.rule.Package;
+import org.drools.runtime.StatefulKnowledgeSession;
public class AccumulateTest extends TestCase {
protected RuleBase getRuleBase() throws Exception {
@@ -935,8 +942,8 @@
}
private void updateReferences(final StatefulSession session,
- final DataSet data ) {
- data.results = (List<?>) session.getGlobal( "results" );
+ final DataSet data) {
+ data.results = (List< ? >) session.getGlobal( "results" );
for ( Iterator< ? > it = session.iterateObjects(); it.hasNext(); ) {
Object next = (Object) it.next();
if ( next instanceof Cheese ) {
@@ -944,7 +951,7 @@
data.cheese[c.getOldPrice()] = c;
data.cheeseHandles[c.getOldPrice()] = session.getFactHandle( c );
assertNotNull( data.cheeseHandles[c.getOldPrice()] );
- } else if( next instanceof Person ) {
+ } else if ( next instanceof Person ) {
Person p = (Person) next;
data.bob = p;
data.bobHandle = session.getFactHandle( data.bob );
@@ -1335,7 +1342,6 @@
Assert.assertEquals( 3,
((Set) results.get( results.size() - 1 )).size() );
-
// ---------------- 4rd scenario
wm.retract( cheeseHandles[4] );
wm.fireAllRules();
@@ -1456,12 +1462,21 @@
wm.setGlobal( "results",
results );
- Order order = new Order(1, "Bob");
- OrderItem item1 = new OrderItem( order, 1, "maquilage", 1, 10 );
- OrderItem item2 = new OrderItem( order, 2, "perfume", 1, 5 );
+ Order order = new Order( 1,
+ "Bob" );
+ OrderItem item1 = new OrderItem( order,
+ 1,
+ "maquilage",
+ 1,
+ 10 );
+ OrderItem item2 = new OrderItem( order,
+ 2,
+ "perfume",
+ 1,
+ 5 );
order.addItem( item1 );
order.addItem( item2 );
-
+
wm.insert( order );
wm.insert( item1 );
wm.insert( item2 );
@@ -1471,7 +1486,7 @@
results.size() );
assertEquals( 15,
results.get( 0 ).intValue() );
- assertEquals( 15.0,
+ assertEquals( 15.0,
order.getTotal() );
}
@@ -1481,7 +1496,7 @@
final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_AccumulateGlobals.drl" ) );
final RuleBase ruleBase = loadRuleBase( reader );
- final WorkingMemory wm = ruleBase.newStatefulSession();
+ final StatefulSession wm = ruleBase.newStatefulSession();
final List results = new ArrayList();
wm.setGlobal( "results",
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MarshallingTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MarshallingTest.java 2009-05-14 12:42:01 UTC (rev 26534)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MarshallingTest.java 2009-05-14 13:09:11 UTC (rev 26535)
@@ -2158,6 +2158,41 @@
session.getAgenda().getActivations().length );
}
+ public void testAccumulateSessionSerialization() throws Exception {
+ KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+ kbuilder.add( ResourceFactory.newInputStreamResource( getClass().getResourceAsStream( "test_AccumulateSerialization.drl" ) ),
+ ResourceType.DRL );
+
+ KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+ kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+
+ StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+ final List<Number> results = new ArrayList<Number>();
+
+ ksession.setGlobal( "results",
+ results );
+
+ ksession.insert( new Cheese( "stilton",
+ 10 ) );
+ ksession.insert( new Cheese( "brie",
+ 5 ) );
+ ksession.insert( new Cheese( "provolone",
+ 150 ) );
+ ksession.insert( new Cheese( "brie",
+ 20 ) );
+ ksession.insert( new Person( "Bob",
+ "brie" ) );
+
+ ksession = getSerialisedStatefulKnowledgeSession( ksession, true );
+
+ ksession.fireAllRules();
+
+ assertEquals( 1,
+ results.size() );
+ assertEquals( 25,
+ results.get( 0 ).intValue() );
+ }
+
/**
* test that creates a new knowledge base, new stateful session, inserts new
* fact, serializes the knowledge base and session and fact using one output
Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_AccumulateSerialization.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_AccumulateSerialization.drl (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_AccumulateSerialization.drl 2009-05-14 13:09:11 UTC (rev 26535)
@@ -0,0 +1,14 @@
+package org.drools;
+
+global java.util.List results;
+
+rule "Test sum" salience 80
+ dialect "java"
+ when
+ $sum : Number( doubleValue >= 10 )
+ from accumulate( Person( $likes : likes ) and Cheese( type == $likes, $price : price ),
+ sum( $price ) );
+ then
+ results.add( $sum );
+end
+
More information about the jboss-svn-commits
mailing list