[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