[jboss-svn-commits] JBL Code SVN: r10988 - in labs/jbossrules/trunk/drools-compiler/src/test: java/org/drools/integrationtests and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Apr 15 21:25:50 EDT 2007


Author: mark.proctor at jboss.com
Date: 2007-04-15 21:25:50 -0400 (Sun, 15 Apr 2007)
New Revision: 10988

Added:
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_LogicalAssertionsWithModify.drl
Modified:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Alarm.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Cheese.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/EmergencyTeam.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/TruthMaintenanceTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_LogicalAssertionWithExists.drl
Log:
JBRULES-797 Modified object causes logical assertion to retract even though its still true

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Alarm.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Alarm.java	2007-04-16 01:25:42 UTC (rev 10987)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Alarm.java	2007-04-16 01:25:50 UTC (rev 10988)
@@ -12,7 +12,7 @@
     }
 
     public String toString() {
-        return this.message;
+        return "[Alarm message=" + this.message + "]";
     }
 
     /**

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Cheese.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Cheese.java	2007-04-16 01:25:42 UTC (rev 10987)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Cheese.java	2007-04-16 01:25:50 UTC (rev 10988)
@@ -59,4 +59,26 @@
         return "Cheese( type='" + this.type + "', price=" + this.price + " )";
     }
 
+    public int hashCode() {
+        final int PRIME = 31;
+        int result = 1;
+        result = PRIME * result + price;
+        result = PRIME * result + ((type == null) ? 0 : type.hashCode());
+        return result;
+    }
+
+    public boolean equals(Object obj) {
+        if ( this == obj ) return true;
+        if ( obj == null ) return false;
+        if ( getClass() != obj.getClass() ) return false;
+        final Cheese other = (Cheese) obj;
+        if ( price != other.price ) return false;
+        if ( type == null ) {
+            if ( other.type != null ) return false;
+        } else if ( !type.equals( other.type ) ) return false;
+        return true;
+    }
+    
+    
+
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/EmergencyTeam.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/EmergencyTeam.java	2007-04-16 01:25:42 UTC (rev 10987)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/EmergencyTeam.java	2007-04-16 01:25:50 UTC (rev 10988)
@@ -4,4 +4,8 @@
     public EmergencyTeam() {
 
     }
+    
+    public String toString() {
+        return "[EmergencyTeam]";
+    }
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/TruthMaintenanceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/TruthMaintenanceTest.java	2007-04-16 01:25:42 UTC (rev 10987)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/TruthMaintenanceTest.java	2007-04-16 01:25:50 UTC (rev 10988)
@@ -119,6 +119,8 @@
                       list.size() );
         assertEquals( cheese1.getType(),
                       list.get( 0 ) );
+        
+        assertEquals( 3, workingMemory.getObjects().size() );
 
         workingMemory.retractObject( h1 );
         workingMemory.fireAllRules();
@@ -303,30 +305,8 @@
         final WorkingMemory workingMemory = ruleBase.newWorkingMemory();
 
         final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( workingMemory );
-        logger.setFileName( "logical.log" );
+        logger.setFileName( "logical" );
 
-        final AgendaEventListener listener = new DefaultAgendaEventListener() {
-            public void activationCreated(ActivationCreatedEvent event,
-                                          WorkingMemory workingMemory) {
-                System.out.println( event );
-            }
-
-            public void activationCancelled(ActivationCancelledEvent event,
-                                            WorkingMemory workingMemory) {
-                System.out.println( event );
-            }
-
-            public void beforeActivationFired(BeforeActivationFiredEvent event,
-                                              WorkingMemory workingMemory) {
-            }
-
-            public void afterActivationFired(AfterActivationFiredEvent event,
-                                             WorkingMemory workingMemory) {
-                System.out.println( event );
-            }
-        };
-        workingMemory.addEventListener( listener );
-
         final List events = new ArrayList();
 
         workingMemory.setGlobal( "events",
@@ -360,8 +340,8 @@
         assertEquals( "Only sensor is there",
                       1,
                       list.size() );
-        assertEquals( "Exactly six events",
-                      6,
+        assertEquals( "Exactly seven events",
+                      7,
                       events.size() );
     }
 
@@ -742,7 +722,7 @@
         workingMemory.fireAllRules();
 
         // alarm must continue to sound
-        assertEquals( 4,
+        assertEquals( 3,
                       list.size() );
         assertEquals( 2,
                       workingMemory.getObjects().size() );
@@ -754,7 +734,7 @@
         workingMemory.fireAllRules();
 
         // no alarms anymore
-        assertEquals( 4,
+        assertEquals( 3,
                       list.size() );
         assertEquals( 1,
                       workingMemory.getObjects().size() );

Modified: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_LogicalAssertionWithExists.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_LogicalAssertionWithExists.drl	2007-04-16 01:25:42 UTC (rev 10987)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_LogicalAssertionWithExists.drl	2007-04-16 01:25:50 UTC (rev 10988)
@@ -1,6 +1,6 @@
 package org.drools
 
-rule "Supply cheese for for every person when there already exists someone  of the same status"
+rule "Supply cheese for for every person when there already exists someone of the same status and they are older"
 	when
 		p : Person($status : status, $age : age)
 		exists Person(status == $status, age > $age);

Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_LogicalAssertionsWithModify.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_LogicalAssertionsWithModify.drl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_LogicalAssertionsWithModify.drl	2007-04-16 01:25:50 UTC (rev 10988)
@@ -0,0 +1,21 @@
+package org.drools.test;
+
+import org.drools.Person
+import org.drools.CheeseEqual;
+
+rule "assert"
+	salience 10
+	when
+		p : Person( name == "person" )
+	then
+		assertLogical( new CheeseEqual( p.getName(), p.getAge() ) );
+end
+
+rule "modify"
+	no-loop true
+	when
+		p : Person( name == "person" )	
+		c : CheeseEqual(price == 2)
+	then
+		modify( p );
+end
\ No newline at end of file




More information about the jboss-svn-commits mailing list