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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat Mar 31 22:20:50 EDT 2007


Author: mark.proctor at jboss.com
Date: 2007-03-31 22:20:50 -0400 (Sat, 31 Mar 2007)
New Revision: 10682

Modified:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/ColumnBuilder.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Cheesery.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_StaticField.drl
Log:
JBRULES-768 Object based enums do not work
-removed the toString()
-added further static field test for Object based enums

Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/ColumnBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/ColumnBuilder.java	2007-03-31 10:32:41 UTC (rev 10681)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/rule/builder/ColumnBuilder.java	2007-04-01 02:20:50 UTC (rev 10682)
@@ -527,7 +527,7 @@
             final String fieldName = literalRestrictionDescr.getText().substring( lastDot + 1 );
             try {
                 final Class staticClass = utils.getTypeResolver().resolveType( className );
-                field = FieldFactory.getFieldValue( staticClass.getField( fieldName ).get( null ).toString(),
+                field = FieldFactory.getFieldValue( staticClass.getField( fieldName ).get( null ),
                                                     extractor.getValueType() );
             } catch ( final ClassNotFoundException e ) {
                 context.getErrors().add( new RuleError( context.getRule(),

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Cheesery.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Cheesery.java	2007-03-31 10:32:41 UTC (rev 10681)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Cheesery.java	2007-04-01 02:20:50 UTC (rev 10682)
@@ -34,6 +34,7 @@
 
     private int               status;
     private int               totalAmount;
+    private Maturity          maturity;
 
     public List getCheeses() {
         return this.cheeses;
@@ -43,15 +44,23 @@
         this.cheeses.add( cheese );
         this.totalAmount += cheese.getPrice();
     }
-    
+
     public void setStatus(final int status) {
         this.status = status;
     }
 
     public int getStatus() {
         return this.status;
+    }        
+
+    public Maturity getMaturity() {
+        return maturity;
     }
 
+    public void setMaturity(Maturity maturity) {
+        this.maturity = maturity;
+    }
+
     public int getTotalAmount() {
         return totalAmount;
     }
@@ -59,4 +68,19 @@
     public void setTotalAmount(int totalAmount) {
         this.totalAmount = totalAmount;
     }
+
+    public static class Maturity {
+        public static final Maturity YOUNG = new Maturity( "young" );
+        public static final Maturity OLD   = new Maturity( "old" );
+
+        private String               age;
+
+        public Maturity(String age) {
+            this.age = age;
+        }
+
+        public String toString() {
+            return "[Maturity age='" + this.age + "']";
+        }
+    }
 }
\ No newline at end of file

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java	2007-03-31 10:32:41 UTC (rev 10681)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java	2007-04-01 02:20:50 UTC (rev 10682)
@@ -66,6 +66,7 @@
 import org.drools.State;
 import org.drools.TestParam;
 import org.drools.WorkingMemory;
+import org.drools.Cheesery.Maturity;
 import org.drools.compiler.DrlParser;
 import org.drools.compiler.DroolsError;
 import org.drools.compiler.DroolsParserException;
@@ -1915,17 +1916,25 @@
         workingMemory.setGlobal( "list",
                                  list );
 
-        final Cheesery cheesery = new Cheesery();
-        cheesery.setStatus( Cheesery.SELLING_CHEESE );
-        workingMemory.assertObject( cheesery );
+        final Cheesery cheesery1 = new Cheesery();
+        cheesery1.setStatus( Cheesery.SELLING_CHEESE );
+        cheesery1.setMaturity( Maturity.OLD );
+        workingMemory.assertObject( cheesery1);
+        
+        final Cheesery cheesery2 = new Cheesery();
+        cheesery2.setStatus( Cheesery.MAKING_CHEESE);
+        cheesery2.setMaturity( Maturity.YOUNG );
+        workingMemory.assertObject( cheesery2 );        
 
         workingMemory.fireAllRules();
 
-        assertEquals( 1,
+        assertEquals( 2,
                       list.size() );
 
-        assertEquals( cheesery,
+        assertEquals( cheesery1,
                       list.get( 0 ) );
+        assertEquals( cheesery2,
+                      list.get( 1 ) );         
     }
 
     public void testDynamicRuleAdditions() throws Exception {

Modified: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_StaticField.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_StaticField.drl	2007-03-31 10:32:41 UTC (rev 10681)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_StaticField.drl	2007-04-01 02:20:50 UTC (rev 10682)
@@ -2,13 +2,23 @@
 
 import org.drools.Person
 import org.drools.Cheesery
+import org.drools.Cheesery.Maturity
 
 global java.util.List list
 
-rule "first"
+rule "status, int based enum"
+	salience 10
     when
-       	p : Cheesery(status == Cheesery.SELLING_CHEESE)
+       	p : Cheesery(status == Cheesery.SELLING_CHEESE, maturity == Maturity.OLD)
     then
     	list.add( p );
 
 end   
+
+rule "maturity, object based enum"
+    when
+       	p : Cheesery(status == Cheesery.MAKING_CHEESE, maturity == Maturity.YOUNG)
+    then
+    	list.add( p );
+
+end  
\ No newline at end of file




More information about the jboss-svn-commits mailing list