[jboss-svn-commits] JBL Code SVN: r14290 - 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
Wed Aug 15 23:51:16 EDT 2007
Author: mark.proctor at jboss.com
Date: 2007-08-15 23:51:15 -0400 (Wed, 15 Aug 2007)
New Revision: 14290
Added:
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CrossProductRemovingIdentityEquals.drl
Modified:
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
Log:
JBRULES-1079 Problem with "!=" field constraint
-I couldn't reproduce this bug, but added the integration test anyway.
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java 2007-08-16 03:27:11 UTC (rev 14289)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/FirstOrderLogicTest.java 2007-08-16 03:51:15 UTC (rev 14290)
@@ -566,14 +566,14 @@
// only stilton, so should not fire again
FactHandle stilton1 = workingMemory.insert( new Cheese( "stilton",
- 10 ) );
+ 10 ) );
workingMemory.fireAllRules();
assertEquals( 1,
list.size() );
// only stilton, so should fire again
FactHandle stilton2 = workingMemory.insert( new Cheese( "stilton",
- 11 ) );
+ 11 ) );
workingMemory.fireAllRules();
assertEquals( 1,
list.size() );
@@ -584,27 +584,27 @@
workingMemory.fireAllRules();
assertEquals( 1,
list.size() );
-
+
// there is a brie, so should not fire
workingMemory.retract( stilton1 );
workingMemory.fireAllRules();
assertEquals( 1,
list.size() );
-
+
// no brie anymore, so should fire
workingMemory.retract( brie );
workingMemory.fireAllRules();
assertEquals( 2,
list.size() );
-// TODO: in the future, we need to fix the following test case
-// // no cheese anymore, so should not fire again
-// workingMemory.retract( stilton2 );
-// workingMemory.fireAllRules();
-// assertEquals( 2,
-// list.size() );
-//
-
+ // TODO: in the future, we need to fix the following test case
+ // // no cheese anymore, so should not fire again
+ // workingMemory.retract( stilton2 );
+ // workingMemory.fireAllRules();
+ // assertEquals( 2,
+ // list.size() );
+ //
+
}
public void testMVELCollect() throws Exception {
@@ -641,9 +641,9 @@
Assert.assertEquals( 1,
results.size() );
Assert.assertEquals( 6,
- ((List)results.get(0)).size() );
+ ((List) results.get( 0 )).size() );
}
-
+
public void testNestedCorelatedRulesWithForall() throws Exception {
PackageBuilder builder = new PackageBuilder();
@@ -680,7 +680,7 @@
System.out.println( "Done." );
System.out.println( "Firing rules ..." );
-
+
// check all lists are empty
assertTrue( list1.isEmpty() );
assertTrue( list2.isEmpty() );
@@ -690,20 +690,23 @@
session.fireAllRules();
System.out.println( "Done." );
-
+
// check first list is populated correctly
- assertEquals(2, list1.size() );
- assertTrue( list1.contains( first42 ));
- assertTrue( list1.contains( second42 ));
+ assertEquals( 2,
+ list1.size() );
+ assertTrue( list1.contains( first42 ) );
+ assertTrue( list1.contains( second42 ) );
// check second list is populated correctly
- assertEquals(1, list2.size() );
-
+ assertEquals( 1,
+ list2.size() );
+
// check third list is populated correctly
- assertEquals(1, list3.size() );
-
+ assertEquals( 1,
+ list3.size() );
+
// check fourth list is populated correctly
- assertEquals(0, list4.size() );
- }
-
+ assertEquals( 0,
+ list4.size() );
+ }
}
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-16 03:27:11 UTC (rev 14289)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2007-08-16 03:51:15 UTC (rev 14290)
@@ -62,7 +62,9 @@
import org.drools.RuleBaseFactory;
import org.drools.SecondClass;
import org.drools.Sensor;
+import org.drools.SpecialString;
import org.drools.State;
+import org.drools.StatefulSession;
import org.drools.TestParam;
import org.drools.WorkingMemory;
import org.drools.Cheesery.Maturity;
@@ -3536,5 +3538,50 @@
results.size() );
}
+
+ public void testCrossProductRemovingIdentityEquals() throws Exception {
+ PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( MiscTest.class.getResourceAsStream( "test_CrossProductRemovingIdentityEquals.drl" ) ) );
+ RuleBase rb = RuleBaseFactory.newRuleBase();
+ rb.addPackage( builder.getPackage() );
+ StatefulSession session = rb.newStatefulSession();
+
+ List list1 = new ArrayList();
+ List list2 = new ArrayList();
+
+ session.setGlobal( "list1",
+ list1 );
+ session.setGlobal( "list2",
+ list2 );
+
+ SpecialString first42 = new SpecialString( "42" );
+ SpecialString second43 = new SpecialString( "43" );
+ SpecialString world = new SpecialString( "World" );
+ session.insert( world );
+ session.insert( first42 );
+ session.insert( second43 );
+
+ System.out.println( "Firing rules ..." );
+
+ session.fireAllRules();
+
+ assertEquals(6, list1.size());
+ assertEquals(6, list2.size());
+
+ assertEquals( second43, list1.get( 0 ) );
+ assertEquals( first42, list1.get( 1 ) );
+ assertEquals( world, list1.get( 2 ) );
+ assertEquals( second43, list1.get( 3 ) );
+ assertEquals( first42, list1.get( 4 ) );
+ assertEquals( world, list1.get( 5 ) );
+
+ assertEquals( first42, list2.get( 0 ) );
+ assertEquals( second43, list2.get( 1 ) );
+ assertEquals( second43, list2.get( 2 ) );
+ assertEquals( world, list2.get( 3 ) );
+ assertEquals( world, list2.get( 4 ) );
+ assertEquals( first42, list2.get( 5 ) );
+ }
+
}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CrossProductRemovingIdentityEquals.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CrossProductRemovingIdentityEquals.drl (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_CrossProductRemovingIdentityEquals.drl 2007-08-16 03:51:15 UTC (rev 14290)
@@ -0,0 +1,18 @@
+package org.drools.integrationtests
+
+import org.drools.SpecialString
+import java.util.List
+
+
+global List list1;
+global List list2;
+
+rule "A test"
+
+when
+ x : SpecialString()
+ y : SpecialString(this!=x)
+then
+ list1.add( x );
+ list2.add( y );
+end
\ No newline at end of file
More information about the jboss-svn-commits
mailing list