[jboss-svn-commits] JBL Code SVN: r19136 - in labs/jbossrules/branches/4.0.x: drools-compiler/src/test/resources/org/drools/integrationtests and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Mar 20 08:36:37 EDT 2008


Author: tirelli
Date: 2008-03-20 08:36:36 -0400 (Thu, 20 Mar 2008)
New Revision: 19136

Added:
   labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_AlphaCompositeConstraints.drl
Modified:
   labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
   labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/rule/AndConstraint.java
   labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/rule/OrConstraint.java
Log:
JBRULES-1519: fixing bug with alpha only composite constraints

Modified: labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java	2008-03-20 06:55:23 UTC (rev 19135)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java	2008-03-20 12:36:36 UTC (rev 19136)
@@ -82,7 +82,6 @@
 import org.drools.Cheesery.Maturity;
 import org.drools.audit.WorkingMemoryFileLogger;
 import org.drools.audit.WorkingMemoryInMemoryLogger;
-import org.drools.audit.WorkingMemoryLogger;
 import org.drools.base.ClassObjectFilter;
 import org.drools.common.AbstractWorkingMemory;
 import org.drools.common.InternalFactHandle;
@@ -114,7 +113,6 @@
 import org.drools.lang.descr.RuleDescr;
 import org.drools.rule.InvalidRulePackage;
 import org.drools.rule.Package;
-import org.drools.rule.Rule;
 import org.drools.rule.builder.dialect.java.JavaDialectConfiguration;
 import org.drools.spi.Activation;
 import org.drools.spi.ConsequenceExceptionHandler;
@@ -4716,12 +4714,33 @@
                       list.size() );
     }
 
-    public void testModifyBlock() throws Exception {
+    public void testAlphaCompositeConstraints() throws Exception {
         final PackageBuilder builder = new PackageBuilder();
-        builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_ModifyBlock.drl" ) ) );
+        builder.addPackageFromDrl(new InputStreamReader(getClass()
+                .getResourceAsStream("test_AlphaCompositeConstraints.drl")));
         final Package pkg = builder.getPackage();
 
         final RuleBase ruleBase = getRuleBase();
+        ruleBase.addPackage(pkg);
+        final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+
+        final List list = new ArrayList();
+        workingMemory.setGlobal("results", list);
+
+        Person bob = new Person( "bob", 30 );
+
+        workingMemory.insert(bob);
+        workingMemory.fireAllRules();
+
+        assertEquals( 1, list.size());
+    }
+
+	public void testModifyBlock() throws Exception {
+		final PackageBuilder builder = new PackageBuilder();
+		builder.addPackageFromDrl(new InputStreamReader(getClass()
+				.getResourceAsStream("test_ModifyBlock.drl")));
+		final Package pkg = builder.getPackage();
+        final RuleBase ruleBase = getRuleBase();
         ruleBase.addPackage( pkg );
         final WorkingMemory workingMemory = ruleBase.newStatefulSession();
 

Added: labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_AlphaCompositeConstraints.drl
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_AlphaCompositeConstraints.drl	                        (rev 0)
+++ labs/jbossrules/branches/4.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/test_AlphaCompositeConstraints.drl	2008-03-20 12:36:36 UTC (rev 19136)
@@ -0,0 +1,10 @@
+package org.drools;
+
+global java.util.List results;
+
+rule "test alpha composite constraints"
+when
+    Person( eval( age == 25 ) || ( eval( name.equals( "bob" ) ) && eval( age == 30 ) ) )
+then
+    results.add( "OK" );
+end
\ No newline at end of file

Modified: labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/rule/AndConstraint.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/rule/AndConstraint.java	2008-03-20 06:55:23 UTC (rev 19135)
+++ labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/rule/AndConstraint.java	2008-03-20 12:36:36 UTC (rev 19136)
@@ -46,7 +46,7 @@
         for ( int i = 0; i < this.alphaConstraints.length; i++ ) {
             if ( !this.alphaConstraints[i].isAllowed( object,
                                                       workingMemory,
-                                                      ctx ) ) {
+                                                      ((MultiFieldConstraintContextEntry) ctx).alphas[i] ) ) {
                 return false;
             }
         }

Modified: labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/rule/OrConstraint.java
===================================================================
--- labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/rule/OrConstraint.java	2008-03-20 06:55:23 UTC (rev 19135)
+++ labs/jbossrules/branches/4.0.x/drools-core/src/main/java/org/drools/rule/OrConstraint.java	2008-03-20 12:36:36 UTC (rev 19136)
@@ -49,7 +49,7 @@
             for ( int i = 0; i < this.alphaConstraints.length; i++ ) {
                 if ( this.alphaConstraints[i].isAllowed( object,
                                                          workingMemory,
-                                                         ctx ) ) {
+                                                         ((MultiFieldConstraintContextEntry) ctx).alphas[i] ) ) {
                     return true;
                 }
             }




More information about the jboss-svn-commits mailing list