[jboss-svn-commits] JBL Code SVN: r19313 - in labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools: integrationtests and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Mar 29 13:43:02 EDT 2008
Author: tirelli
Date: 2008-03-29 13:43:02 -0400 (Sat, 29 Mar 2008)
New Revision: 19313
Modified:
labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/State.java
labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/AccumulateTest.java
labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java
Log:
JBRULES-1522: adding final serialization tests
Modified: labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/State.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/State.java 2008-03-29 16:57:19 UTC (rev 19312)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/State.java 2008-03-29 17:43:02 UTC (rev 19313)
@@ -2,8 +2,9 @@
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
+import java.io.Serializable;
-public class State {
+public class State implements Serializable {
private final PropertyChangeSupport changes = new PropertyChangeSupport( this );
private String state;
Modified: labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/AccumulateTest.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/AccumulateTest.java 2008-03-29 16:57:19 UTC (rev 19312)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/AccumulateTest.java 2008-03-29 17:43:02 UTC (rev 19313)
@@ -26,7 +26,6 @@
import org.drools.RuleBaseFactory;
import org.drools.RuntimeDroolsException;
import org.drools.StatefulSession;
-import org.drools.WorkingMemory;
import org.drools.common.InternalFactHandle;
import org.drools.compiler.DrlParser;
import org.drools.compiler.DroolsParserException;
Modified: labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java 2008-03-29 16:57:19 UTC (rev 19312)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java 2008-03-29 17:43:02 UTC (rev 19313)
@@ -1,10 +1,17 @@
package org.drools.integrationtests;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
+import java.io.ObjectInput;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutput;
+import java.io.ObjectOutputStream;
import java.io.Reader;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Iterator;
import java.util.List;
import junit.framework.Assert;
@@ -24,6 +31,7 @@
import org.drools.State;
import org.drools.StatefulSession;
import org.drools.WorkingMemory;
+import org.drools.common.InternalFactHandle;
import org.drools.compiler.DrlParser;
import org.drools.compiler.DroolsParserException;
import org.drools.compiler.PackageBuilder;
@@ -44,14 +52,112 @@
config );
}
+ private RuleBase loadRuleBase(final Reader reader) throws IOException,
+ DroolsParserException,
+ Exception {
+ final DrlParser parser = new DrlParser();
+ final PackageDescr packageDescr = parser.parse( reader );
+ if ( parser.hasErrors() ) {
+ System.out.println( parser.getErrors() );
+ Assert.fail( "Error messages in parser, need to sort this our (or else collect error messages)" );
+ }
+ // pre build the package
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackage( packageDescr );
+ final Package pkg = builder.getPackage();
+
+ // add the package to a rulebase
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ // load up the rulebase
+ return serializeRuleBase( ruleBase );
+ }
+
+ protected Object serializeIn(final byte[] bytes) throws IOException,
+ ClassNotFoundException {
+ final ObjectInput in = new ObjectInputStream( new ByteArrayInputStream( bytes ) );
+ final Object obj = in.readObject();
+ in.close();
+ return obj;
+ }
+
+ protected byte[] serializeOut(final Object obj) throws IOException {
+ // Serialize to a byte array
+ final ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ final ObjectOutput out = new ObjectOutputStream( bos );
+ out.writeObject( obj );
+ out.close();
+
+ // Get the bytes of the serialized object
+ final byte[] bytes = bos.toByteArray();
+ return bytes;
+ }
+
+ /**
+ * @param ruleBase
+ * @return
+ * @throws IOException
+ * @throws ClassNotFoundException
+ */
+ private RuleBase serializeRuleBase(RuleBase ruleBase) throws IOException,
+ ClassNotFoundException {
+ byte[] serializedRuleBase = serializeOut( ruleBase );
+ ruleBase = (RuleBase) serializeIn( serializedRuleBase );
+ return ruleBase;
+ }
+
+ /**
+ * @param ruleBase
+ * @param wm
+ * @return
+ * @throws IOException
+ * @throws ClassNotFoundException
+ */
+ private StatefulSession serializeWorkingMemory(RuleBase ruleBase,
+ StatefulSession wm) throws IOException,
+ ClassNotFoundException {
+ byte[] serializedSession = serializeOut( wm );
+ wm.dispose();
+ wm = ruleBase.newStatefulSession( new ByteArrayInputStream( serializedSession ) );
+ return wm;
+ }
+
+ /**
+ * @param wm
+ * @param handles
+ */
+ private void updateHandles(StatefulSession wm,
+ final FactHandle[] handles) {
+ for ( int i = 0; i < handles.length; i++ ) {
+ handles[i] = updateHandle( wm,
+ (InternalFactHandle) handles[i] );
+ }
+ }
+
+ /**
+ * @param wm
+ * @param cheeseHandles
+ * @param index
+ */
+ private InternalFactHandle updateHandle(final StatefulSession wm,
+ final FactHandle handle) {
+ for ( Iterator it = wm.iterateFactHandles(); it.hasNext(); ) {
+ InternalFactHandle newHandle = (InternalFactHandle) it.next();
+ if ( ((InternalFactHandle) handle).getId() == newHandle.getId() ) {
+ return newHandle;
+ }
+ }
+ return null;
+ }
+
public void testCollect() throws Exception {
// read in the source
final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_Collect.drl" ) );
- final RuleBase ruleBase = loadRuleBase( reader );
+ RuleBase ruleBase = loadRuleBase( reader );
- final WorkingMemory wm = ruleBase.newStatefulSession();
- final List results = new ArrayList();
+ StatefulSession wm = ruleBase.newStatefulSession();
+ List results = new ArrayList();
wm.setGlobal( "results",
results );
@@ -73,6 +179,11 @@
wm.insert( new Person( "Mark",
"provolone" ) );
+ ruleBase = serializeRuleBase( ruleBase );
+ wm = serializeWorkingMemory( ruleBase,
+ wm );
+ results = (List) wm.getGlobal( "results" );
+
wm.fireAllRules();
Assert.assertEquals( 1,
@@ -86,10 +197,10 @@
public void testCollectModify() throws Exception {
// read in the source
final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_Collect.drl" ) );
- final RuleBase ruleBase = loadRuleBase( reader );
+ RuleBase ruleBase = loadRuleBase( reader );
- final WorkingMemory wm = ruleBase.newStatefulSession();
- final List results = new ArrayList();
+ StatefulSession wm = ruleBase.newStatefulSession();
+ List results = new ArrayList();
wm.setGlobal( "results",
results );
@@ -108,8 +219,16 @@
for ( int i = 0; i < cheese.length; i++ ) {
cheeseHandles[i] = wm.insert( cheese[i] );
}
- final FactHandle bobHandle = wm.insert( bob );
+ FactHandle bobHandle = wm.insert( bob );
+ ruleBase = serializeRuleBase( ruleBase );
+ wm = serializeWorkingMemory( ruleBase,
+ wm );
+ results = (List) wm.getGlobal( "results" );
+ updateHandles( wm,
+ cheeseHandles );
+ bobHandle = updateHandle( wm,
+ (InternalFactHandle) bobHandle );
// ---------------- 1st scenario
int fireCount = 0;
wm.fireAllRules();
@@ -153,17 +272,12 @@
}
public void testExistsWithBinding() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ExistsWithBindings.drl" ) ) );
- final Package pkg = builder.getPackage();
+ RuleBase ruleBase = loadRuleBase( new InputStreamReader( getClass().getResourceAsStream( "test_ExistsWithBindings.drl" ) ) );
+ StatefulSession workingMemory = ruleBase.newStatefulSession();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
-
- final List list = new ArrayList();
+ List results = new ArrayList();
workingMemory.setGlobal( "results",
- list );
+ results );
final Cheese c = new Cheese( "stilton",
10 );
@@ -171,47 +285,58 @@
"stilton" );
workingMemory.insert( c );
workingMemory.insert( p );
+
+ ruleBase = serializeRuleBase( ruleBase );
+ workingMemory = serializeWorkingMemory( ruleBase,
+ workingMemory );
+ results = (List) workingMemory.getGlobal( "results" );
+
workingMemory.fireAllRules();
- assertTrue( list.contains( c.getType() ) );
+ assertTrue( results.contains( c.getType() ) );
assertEquals( 1,
- list.size() );
+ results.size() );
}
public void testNot() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "not_rule_test.drl" ) ) );
- final Package pkg = builder.getPackage();
+ RuleBase ruleBase = loadRuleBase( new InputStreamReader( getClass().getResourceAsStream( "not_rule_test.drl" ) ) );
+ StatefulSession workingMemory = ruleBase.newStatefulSession();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
-
- final List list = new ArrayList();
+ List results = new ArrayList();
workingMemory.setGlobal( "list",
- list );
+ results );
final Cheese stilton = new Cheese( "stilton",
5 );
- final FactHandle stiltonHandle = workingMemory.insert( stilton );
+ FactHandle stiltonHandle = workingMemory.insert( stilton );
final Cheese cheddar = new Cheese( "cheddar",
7 );
- final FactHandle cheddarHandle = workingMemory.insert( cheddar );
+ FactHandle cheddarHandle = workingMemory.insert( cheddar );
+
+ ruleBase = serializeRuleBase( ruleBase );
+ workingMemory = serializeWorkingMemory( ruleBase,
+ workingMemory );
+ results = (List) workingMemory.getGlobal( "list" );
+ stiltonHandle = updateHandle( workingMemory,
+ stiltonHandle );
+ cheddarHandle = updateHandle( workingMemory,
+ cheddarHandle );
+
workingMemory.fireAllRules();
assertEquals( 0,
- list.size() );
+ results.size() );
workingMemory.retract( stiltonHandle );
workingMemory.fireAllRules();
assertEquals( 4,
- list.size() );
- Assert.assertTrue( list.contains( new Integer( 5 ) ) );
- Assert.assertTrue( list.contains( new Integer( 6 ) ) );
- Assert.assertTrue( list.contains( new Integer( 7 ) ) );
- Assert.assertTrue( list.contains( new Integer( 8 ) ) );
+ results.size() );
+ Assert.assertTrue( results.contains( new Integer( 5 ) ) );
+ Assert.assertTrue( results.contains( new Integer( 6 ) ) );
+ Assert.assertTrue( results.contains( new Integer( 7 ) ) );
+ Assert.assertTrue( results.contains( new Integer( 8 ) ) );
}
public void testNotWithBindings() throws Exception {
@@ -223,25 +348,38 @@
assertTrue( rule.isValid() );
assertEquals( 0,
builder.getErrors().getErrors().length );
- final RuleBase ruleBase = getRuleBase();
+
+ RuleBase ruleBase = getRuleBase();
ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ ruleBase = serializeRuleBase( ruleBase );
- final List list = new ArrayList();
+ StatefulSession workingMemory = ruleBase.newStatefulSession();
+
+ List list = new ArrayList();
workingMemory.setGlobal( "list",
list );
final Cheese stilton = new Cheese( "stilton",
5 );
- final FactHandle stiltonHandle = workingMemory.insert( stilton );
+ FactHandle stiltonHandle = workingMemory.insert( stilton );
final Cheese cheddar = new Cheese( "cheddar",
7 );
- final FactHandle cheddarHandle = workingMemory.insert( cheddar );
+ FactHandle cheddarHandle = workingMemory.insert( cheddar );
final PersonInterface paul = new Person( "paul",
"stilton",
12 );
workingMemory.insert( paul );
+
+ ruleBase = serializeRuleBase( ruleBase );
+ workingMemory = serializeWorkingMemory( ruleBase,
+ workingMemory );
+ list = (List) workingMemory.getGlobal( "list" );
+ stiltonHandle = updateHandle( workingMemory,
+ stiltonHandle );
+ cheddarHandle = updateHandle( workingMemory,
+ cheddarHandle );
+
workingMemory.fireAllRules();
assertEquals( 0,
@@ -256,21 +394,22 @@
}
public void testExists() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "exists_rule_test.drl" ) ) );
- final Package pkg = builder.getPackage();
+ RuleBase ruleBase = loadRuleBase( new InputStreamReader( getClass().getResourceAsStream( "exists_rule_test.drl" ) ) );
+ StatefulSession workingMemory = ruleBase.newStatefulSession();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
-
- final List list = new ArrayList();
+ List list = new ArrayList();
workingMemory.setGlobal( "list",
list );
final Cheese cheddar = new Cheese( "cheddar",
7 );
final FactHandle cheddarHandle = workingMemory.insert( cheddar );
+
+ ruleBase = serializeRuleBase( ruleBase );
+ workingMemory = serializeWorkingMemory( ruleBase,
+ workingMemory );
+ list = (List) workingMemory.getGlobal( "list" );
+
workingMemory.fireAllRules();
assertEquals( 0,
@@ -279,6 +418,12 @@
final Cheese stilton = new Cheese( "stilton",
5 );
final FactHandle stiltonHandle = workingMemory.insert( stilton );
+
+ ruleBase = serializeRuleBase( ruleBase );
+ workingMemory = serializeWorkingMemory( ruleBase,
+ workingMemory );
+ list = (List) workingMemory.getGlobal( "list" );
+
workingMemory.fireAllRules();
assertEquals( 1,
@@ -287,6 +432,12 @@
final Cheese brie = new Cheese( "brie",
5 );
final FactHandle brieHandle = workingMemory.insert( brie );
+
+ ruleBase = serializeRuleBase( ruleBase );
+ workingMemory = serializeWorkingMemory( ruleBase,
+ workingMemory );
+ list = (List) workingMemory.getGlobal( "list" );
+
workingMemory.fireAllRules();
assertEquals( 1,
@@ -294,15 +445,10 @@
}
public void testExists2() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_exists.drl" ) ) );
- final Package pkg = builder.getPackage();
+ RuleBase ruleBase = loadRuleBase( new InputStreamReader( getClass().getResourceAsStream( "test_exists.drl" ) ) );
+ StatefulSession workingMemory = ruleBase.newStatefulSession();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
-
- final List list = new ArrayList();
+ List list = new ArrayList();
workingMemory.setGlobal( "list",
list );
@@ -316,36 +462,51 @@
"muzzarela" );
workingMemory.insert( cheddar );
+ ruleBase = serializeRuleBase( ruleBase );
+ workingMemory = serializeWorkingMemory( ruleBase,
+ workingMemory );
+ list = (List) workingMemory.getGlobal( "list" );
+
workingMemory.fireAllRules();
assertEquals( 0,
list.size() );
workingMemory.insert( provolone );
+ ruleBase = serializeRuleBase( ruleBase );
+ workingMemory = serializeWorkingMemory( ruleBase,
+ workingMemory );
+ list = (List) workingMemory.getGlobal( "list" );
+
workingMemory.fireAllRules();
assertEquals( 0,
list.size() );
workingMemory.insert( edson );
+ ruleBase = serializeRuleBase( ruleBase );
+ workingMemory = serializeWorkingMemory( ruleBase,
+ workingMemory );
+ list = (List) workingMemory.getGlobal( "list" );
+
workingMemory.fireAllRules();
assertEquals( 1,
list.size() );
workingMemory.insert( bob );
+ ruleBase = serializeRuleBase( ruleBase );
+ workingMemory = serializeWorkingMemory( ruleBase,
+ workingMemory );
+ list = (List) workingMemory.getGlobal( "list" );
+
workingMemory.fireAllRules();
assertEquals( 1,
list.size() );
}
public void testForall() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_Forall.drl" ) ) );
- final Package pkg = builder.getPackage();
+ RuleBase ruleBase = loadRuleBase( new InputStreamReader( getClass().getResourceAsStream( "test_Forall.drl" ) ) );
+ StatefulSession workingMemory = ruleBase.newStatefulSession();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
-
- final List list = new ArrayList();
+ List list = new ArrayList();
workingMemory.setGlobal( "results",
list );
@@ -357,6 +518,11 @@
bob.setLikes( "stilton" );
workingMemory.insert( bob );
+ ruleBase = serializeRuleBase( ruleBase );
+ workingMemory = serializeWorkingMemory( ruleBase,
+ workingMemory );
+ list = (List) workingMemory.getGlobal( "results" );
+
workingMemory.fireAllRules();
assertEquals( 0,
@@ -364,6 +530,12 @@
workingMemory.insert( new Cheese( bob.getLikes(),
10 ) );
+
+ ruleBase = serializeRuleBase( ruleBase );
+ workingMemory = serializeWorkingMemory( ruleBase,
+ workingMemory );
+ list = (List) workingMemory.getGlobal( "results" );
+
workingMemory.fireAllRules();
assertEquals( 1,
@@ -377,11 +549,14 @@
final RuleBaseConfiguration config = new RuleBaseConfiguration();
config.setRemoveIdentities( true );
- final RuleBase ruleBase = getRuleBase( config );
+ RuleBase ruleBase = getRuleBase( config );
ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List list = new ArrayList();
+ ruleBase = serializeRuleBase( ruleBase );
+
+ StatefulSession workingMemory = ruleBase.newStatefulSession();
+
+ List list = new ArrayList();
workingMemory.setGlobal( "results",
list );
@@ -395,11 +570,20 @@
final Cheese stilton1 = new Cheese( "stilton",
6 );
- final FactHandle stilton1Handle = workingMemory.insert( stilton1 );
+ FactHandle stilton1Handle = workingMemory.insert( stilton1 );
final Cheese stilton2 = new Cheese( "stilton",
7 );
- final FactHandle stilton2Handle = workingMemory.insert( stilton2 );
+ FactHandle stilton2Handle = workingMemory.insert( stilton2 );
+ ruleBase = serializeRuleBase( ruleBase );
+ workingMemory = serializeWorkingMemory( ruleBase,
+ workingMemory );
+ list = (List) workingMemory.getGlobal( "results" );
+ stilton1Handle = updateHandle( workingMemory,
+ stilton1Handle );
+ stilton2Handle = updateHandle( workingMemory,
+ stilton2Handle );
+
workingMemory.fireAllRules();
assertEquals( 0,
list.size() );
@@ -422,15 +606,10 @@
}
public void testCollectWithNestedFromWithParams() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_CollectWithNestedFrom.drl" ) ) );
- final Package pkg = builder.getPackage();
+ RuleBase ruleBase = loadRuleBase( new InputStreamReader( getClass().getResourceAsStream( "test_CollectWithNestedFrom.drl" ) ) );
+ StatefulSession workingMemory = ruleBase.newStatefulSession();
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
-
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
- final List results = new ArrayList();
+ List results = new ArrayList();
workingMemory.setGlobal( "results",
results );
@@ -452,6 +631,11 @@
workingMemory.insert( bob );
workingMemory.insert( cheesery );
+ ruleBase = serializeRuleBase( ruleBase );
+ workingMemory = serializeWorkingMemory( ruleBase,
+ workingMemory );
+ results = (List) workingMemory.getGlobal( "results" );
+
workingMemory.fireAllRules();
assertEquals( 1,
@@ -469,11 +653,10 @@
public void testCollectModifyAlphaRestriction() throws Exception {
// read in the source
final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_CollectAlphaRestriction.drl" ) );
- final RuleBase ruleBase = loadRuleBase( reader );
+ RuleBase ruleBase = loadRuleBase( reader );
- final WorkingMemory wm = ruleBase.newStatefulSession();
- final List results = new ArrayList();
-
+ StatefulSession wm = ruleBase.newStatefulSession();
+ List results = new ArrayList();
wm.setGlobal( "results",
results );
@@ -490,6 +673,13 @@
cheeseHandles[i] = wm.insert( cheese[i] );
}
+ ruleBase = serializeRuleBase( ruleBase );
+ wm = serializeWorkingMemory( ruleBase,
+ wm );
+ results = (List) wm.getGlobal( "results" );
+ updateHandles( wm,
+ cheeseHandles );
+
// ---------------- 1st scenario
int fireCount = 0;
wm.fireAllRules();
@@ -527,35 +717,11 @@
}
- private RuleBase loadRuleBase(final Reader reader) throws IOException,
- DroolsParserException,
- Exception {
- final DrlParser parser = new DrlParser();
- final PackageDescr packageDescr = parser.parse( reader );
- if ( parser.hasErrors() ) {
- System.out.println( parser.getErrors() );
- Assert.fail( "Error messages in parser, need to sort this our (or else collect error messages)" );
- }
- // pre build the package
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackage( packageDescr );
- final Package pkg = builder.getPackage();
-
- // add the package to a rulebase
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- // load up the rulebase
- return ruleBase;
- }
-
public void testForallSinglePattern() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ForallSinglePattern.drl" ) ) );
- final Package pkg = builder.getPackage();
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_ForallSinglePattern.drl" ) );
+ RuleBase ruleBase = loadRuleBase( reader );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ StatefulSession workingMemory = ruleBase.newStatefulSession();
final List list = new ArrayList();
workingMemory.setGlobal( "results",
@@ -610,14 +776,13 @@
}
public void testMVELCollect() throws Exception {
-
- // read in the source
final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_MVELCollect.drl" ) );
- final RuleBase ruleBase = loadRuleBase( reader );
+ RuleBase ruleBase = loadRuleBase( reader );
- final WorkingMemory wm = ruleBase.newStatefulSession();
- final List results = new ArrayList();
+ StatefulSession wm = ruleBase.newStatefulSession();
+ List results = new ArrayList();
+
wm.setGlobal( "results",
results );
@@ -638,6 +803,11 @@
wm.insert( new Person( "Mark",
"provolone" ) );
+ ruleBase = serializeRuleBase( ruleBase );
+ wm = serializeWorkingMemory( ruleBase,
+ wm );
+ results = (List) wm.getGlobal( "results" );
+
wm.fireAllRules();
Assert.assertEquals( 1,
@@ -647,14 +817,11 @@
}
public void testNestedCorelatedRulesWithForall() throws Exception {
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_NestedCorrelatedRulesWithForall.drl" ) );
+ RuleBase ruleBase = loadRuleBase( reader );
- PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( FirstOrderLogicTest.class.getResourceAsStream( "test_NestedCorrelatedRulesWithForall.drl" ) ) );
+ StatefulSession session = ruleBase.newStatefulSession();
- RuleBase rb = RuleBaseFactory.newRuleBase();
- rb.addPackage( builder.getPackage() );
- StatefulSession session = rb.newStatefulSession();
-
List list1 = new ArrayList();
List list2 = new ArrayList();
List list3 = new ArrayList();
@@ -711,13 +878,10 @@
}
public void testFromInsideNotAndExists() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_FromInsideNotAndExists.drl" ) ) );
- final Package pkg = builder.getPackage();
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_FromInsideNotAndExists.drl" ) );
+ RuleBase ruleBase = loadRuleBase( reader );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ StatefulSession workingMemory = ruleBase.newStatefulSession();
final List list = new ArrayList();
workingMemory.setGlobal( "results",
@@ -749,13 +913,10 @@
}
public void testOr() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_OrNesting.drl" ) ) );
- final Package pkg = builder.getPackage();
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_OrNesting.drl" ) );
+ RuleBase ruleBase = loadRuleBase( reader );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ StatefulSession workingMemory = ruleBase.newStatefulSession();
final List list = new ArrayList();
workingMemory.setGlobal( "results",
@@ -781,13 +942,10 @@
}
public void testCollectWithMemberOfOperators() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_CollectMemberOfOperator.drl" ) ) );
- final Package pkg = builder.getPackage();
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_CollectMemberOfOperator.drl" ) );
+ RuleBase ruleBase = loadRuleBase( reader );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ StatefulSession workingMemory = ruleBase.newStatefulSession();
final List list = new ArrayList();
workingMemory.setGlobal( "results",
@@ -838,13 +996,10 @@
}
public void testCollectWithContainsOperators() throws Exception {
- final PackageBuilder builder = new PackageBuilder();
- builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_CollectContainsOperator.drl" ) ) );
- final Package pkg = builder.getPackage();
+ final Reader reader = new InputStreamReader( getClass().getResourceAsStream( "test_CollectContainsOperator.drl" ) );
+ RuleBase ruleBase = loadRuleBase( reader );
- final RuleBase ruleBase = getRuleBase();
- ruleBase.addPackage( pkg );
- final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ StatefulSession workingMemory = ruleBase.newStatefulSession();
final List list = new ArrayList();
workingMemory.setGlobal( "results",
More information about the jboss-svn-commits
mailing list