[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