[jboss-svn-commits] JBL Code SVN: r14528 - labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Aug 24 09:39:17 EDT 2007
Author: mark.proctor at jboss.com
Date: 2007-08-24 09:39:17 -0400 (Fri, 24 Aug 2007)
New Revision: 14528
Modified:
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
Log:
JBRULES-1104 Inserted internal Objects (like InitialFactImpl) are lost if no matching ObjectTypeNodes
-Added integration test MiscTest.testDynamicallyAddInitialFactRule()
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2007-08-24 13:18:43 UTC (rev 14527)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2007-08-24 13:39:17 UTC (rev 14528)
@@ -3753,22 +3753,36 @@
assertEquals("not integer", list.get( 0 ) );
}
-// public void testDynamicallyAddInitialFactRule() throws Exception {
-// final PackageBuilder builder = new PackageBuilder();
-// builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_NotInStatelessSession.drl" )) );
-// final Package pkg = builder.getPackage();
-//
-// RuleBaseConfiguration conf = new RuleBaseConfiguration();
-// conf.setSequential( true );
-// final RuleBase ruleBase = getRuleBase(conf);
-// ruleBase.addPackage( pkg );
-//
-// StatelessSession session = ruleBase.newStatelessSession();
-// List list = new ArrayList();
-// session.setGlobal( "list", list );
-// session.execute( "not integer" );
-// assertEquals("not integer", list.get( 0 ) );
-// }
+ public void testDynamicallyAddInitialFactRule() throws Exception {
+ PackageBuilder builder = new PackageBuilder();
+ String rule = "package org.drools.test\n global java.util.List list\n rule xxx\n when\n i:Integer()\nthen\n list.add(i);\nend";
+ builder.addPackageFromDrl( new StringReader( rule ) );
+ Package pkg = builder.getPackage();
+
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+
+ StatefulSession session = ruleBase.newStatefulSession();
+ List list = new ArrayList();
+ session.setGlobal( "list", list );
+
+ session.insert( new Integer( 5) );
+ session.fireAllRules();
+
+ assertEquals( new Integer(5), list.get( 0 ) );
+
+ builder = new PackageBuilder();
+ rule = "package org.drools.test\n global java.util.List list\n rule xxx\n when\nthen\n list.add(\"x\");\nend";
+ builder.addPackageFromDrl( new StringReader( rule ) );
+ pkg = builder.getPackage();
+
+ // Make sure that this rule is fired as the Package is updated, it also tests that InitialFactImpl is still in the network
+ // even though the first rule didn't use it.
+ ruleBase.addPackage( pkg );
+
+ assertEquals( "x", list.get( 1 ) );
+
+ }
// FIXME
public void FIXMEtestEvalRewriteWithSpecialOperators() throws Exception {
More information about the jboss-svn-commits
mailing list