[jboss-svn-commits] JBL Code SVN: r6018 - in labs/jbossrules/branches/3.0.x: drools-compiler/src/test/java/org/drools drools-compiler/src/test/java/org/drools/integrationtests drools-compiler/src/test/resources/org/drools/integrationtests drools-core/src/main/java/org/drools/base drools-core/src/main/java/org/drools/base/evaluators drools-core/src/test/java/org/drools/base drools-core/src/test/java/org/drools/util/asm

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Aug 30 10:12:27 EDT 2006


Author: tirelli
Date: 2006-08-30 10:12:08 -0400 (Wed, 30 Aug 2006)
New Revision: 6018

Modified:
   labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/Primitives.java
   labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java
   labs/jbossrules/branches/3.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/null_constraint.drl
   labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/base/ClassFieldExtractorFactory.java
   labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/base/evaluators/ArrayFactory.java
   labs/jbossrules/branches/3.0.x/drools-core/src/test/java/org/drools/base/ClassFieldExtractorTest.java
   labs/jbossrules/branches/3.0.x/drools-core/src/test/java/org/drools/base/EvaluatorFactoryTest.java
   labs/jbossrules/branches/3.0.x/drools-core/src/test/java/org/drools/util/asm/TestBean.java
Log:
JBRULES-459:

  * Solved NPE on ArrayEqualEvaluator
  * Added support to array attributes in ClassFieldExtractorFactory generated classes
  * Added unit tests and integration tests



Modified: labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/Primitives.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/Primitives.java	2006-08-30 14:07:50 UTC (rev 6017)
+++ labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/Primitives.java	2006-08-30 14:12:08 UTC (rev 6018)
@@ -28,6 +28,7 @@
 
     private float   floatPrimitive;
     private float   doublePrimitive;
+    private Object[] arrayAttribute;
 
     public boolean isBooleanPrimitive() {
         return this.booleanPrimitive;
@@ -93,4 +94,12 @@
         this.shortPrimitive = shortPrimitive;
     }
 
+    public Object[] getArrayAttribute() {
+        return arrayAttribute;
+    }
+
+    public void setArrayAttribute(Object[] arrayAttribute) {
+        this.arrayAttribute = arrayAttribute;
+    }
+
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java	2006-08-30 14:07:50 UTC (rev 6017)
+++ labs/jbossrules/branches/3.0.x/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java	2006-08-30 14:12:08 UTC (rev 6018)
@@ -44,6 +44,7 @@
 import org.drools.Person;
 import org.drools.PersonInterface;
 import org.drools.Precondition;
+import org.drools.Primitives;
 import org.drools.QueryResult;
 import org.drools.QueryResults;
 import org.drools.RuleBase;
@@ -692,11 +693,14 @@
         final PersonInterface p1 = new Person( null,
                                          "food",
                                          40 );
+        final Primitives p2 = new Primitives();
+        p2.setArrayAttribute( null );
 
         workingMemory.assertObject( p1 );
+        workingMemory.assertObject( p2 );
 
         workingMemory.fireAllRules();
-        assertEquals( 1,
+        assertEquals( 2,
                       foo.size() );
 
     }

Modified: labs/jbossrules/branches/3.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/null_constraint.drl
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/null_constraint.drl	2006-08-30 14:07:50 UTC (rev 6017)
+++ labs/jbossrules/branches/3.0.x/drools-compiler/src/test/resources/org/drools/integrationtests/null_constraint.drl	2006-08-30 14:12:08 UTC (rev 6018)
@@ -1,6 +1,7 @@
 package org.drools.test
 
 import org.drools.Person
+import org.drools.Primitives
 
 global java.util.List messages
 
@@ -9,4 +10,11 @@
     Person(name == null)
   then
     messages.add("Null name found");
-end
\ No newline at end of file
+end
+
+rule "Raises NPE" salience -10
+  when
+    Primitives(arrayAttribute == null)
+  then
+    messages.add("Null array found");
+end

Modified: labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/base/ClassFieldExtractorFactory.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/base/ClassFieldExtractorFactory.java	2006-08-30 14:07:50 UTC (rev 6017)
+++ labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/base/ClassFieldExtractorFactory.java	2006-08-30 14:12:08 UTC (rev 6018)
@@ -205,6 +205,7 @@
                           2 );
             mv.visitEnd();
         } else {
+            String typeNotation = fieldType.isArray() ? typeName : "L"+typeName+";";
             mv = cw.visitMethod( Opcodes.ACC_PUBLIC,
                                  "getValue",
                                  "(Ljava/lang/Object;)Ljava/lang/Object;",
@@ -223,12 +224,12 @@
                 mv.visitMethodInsn( Opcodes.INVOKEINTERFACE,
                                     originalClassName,
                                     getterName,
-                                    "()L" + typeName + ";" );
+                                    "()" + typeNotation );
             } else {
                 mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL,
                                     originalClassName,
                                     getterName,
-                                    "()L" + typeName + ";" );
+                                    "()" + typeNotation );
             }
             mv.visitInsn( Opcodes.ARETURN );
             final Label l1 = new Label();

Modified: labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/base/evaluators/ArrayFactory.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/base/evaluators/ArrayFactory.java	2006-08-30 14:07:50 UTC (rev 6017)
+++ labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/base/evaluators/ArrayFactory.java	2006-08-30 14:12:08 UTC (rev 6018)
@@ -54,6 +54,9 @@
 
         public boolean evaluate(final Object object1,
                                 final Object object2) {
+            if ( object1 == null ) {
+                return object2 == null;
+            }
             return object1.equals( object2 );
         }
 
@@ -81,7 +84,7 @@
         }
 
         public String toString() {
-            return "Object !=";
+            return "Array !=";
         }
     }
 

Modified: labs/jbossrules/branches/3.0.x/drools-core/src/test/java/org/drools/base/ClassFieldExtractorTest.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-core/src/test/java/org/drools/base/ClassFieldExtractorTest.java	2006-08-30 14:07:50 UTC (rev 6017)
+++ labs/jbossrules/branches/3.0.x/drools-core/src/test/java/org/drools/base/ClassFieldExtractorTest.java	2006-08-30 14:12:08 UTC (rev 6018)
@@ -29,9 +29,12 @@
 public class ClassFieldExtractorTest extends TestCase {
 
     public void testBasic() throws Exception {
+        Object[] objArray = new Object[1];
+
         final TestBean obj = new TestBean();
         obj.setBlah( false );
         obj.setSomething( "no" );
+        obj.setObjArray( objArray );
 
         final ClassFieldExtractor ext = new ClassFieldExtractor( TestBean.class,
                                                                  "blah" );
@@ -43,6 +46,11 @@
         assertEquals( "fooBar",
                       ext2.getValue( obj ) );
 
+        final ClassFieldExtractor ext3 = new ClassFieldExtractor( TestBean.class,
+                                                                  "objArray" );
+        assertEquals( objArray,
+                      ext3.getValue( obj ) );
+
     }
 
     public void testInterface() throws Exception {

Modified: labs/jbossrules/branches/3.0.x/drools-core/src/test/java/org/drools/base/EvaluatorFactoryTest.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-core/src/test/java/org/drools/base/EvaluatorFactoryTest.java	2006-08-30 14:07:50 UTC (rev 6017)
+++ labs/jbossrules/branches/3.0.x/drools-core/src/test/java/org/drools/base/EvaluatorFactoryTest.java	2006-08-30 14:12:08 UTC (rev 6018)
@@ -39,10 +39,24 @@
         final List list = new ArrayList();
         list.add( "foo" );
 
-        final Object[][] data = {{"foo", "==", "bar", Boolean.FALSE}, {"foo", "==", "foo", Boolean.TRUE}, {"foo", "!=", "bar", Boolean.TRUE}, {list, "contains", "foo", Boolean.TRUE}, {list, "contains", "bar", Boolean.FALSE},
-                {list, "==", null, Boolean.FALSE}, {list, "!=", null, Boolean.TRUE}, {null, "==", null, Boolean.TRUE}, {new BigDecimal( "42.42" ), "<", new BigDecimal( "43" ), Boolean.TRUE},
-                {new BigDecimal( "42.42" ), ">", new BigDecimal( "43" ), Boolean.FALSE}, {new BigDecimal( "42.42" ), "<=", new BigDecimal( "42.42" ), Boolean.TRUE}, {new BigInteger( "42" ), ">=", new BigInteger( "43" ), Boolean.FALSE},
-                {new BigInteger( "42" ), ">=", new BigInteger( "43" ), Boolean.FALSE}, {list, "excludes", "baz", Boolean.TRUE}, {list, "excludes", "foo", Boolean.FALSE}
+        final Object[][] data = {
+                {"foo", "==", "bar", Boolean.FALSE}, 
+                {"foo", "==", "foo", Boolean.TRUE}, 
+                {"foo", "!=", "bar", Boolean.TRUE}, 
+                {list, "contains", "foo", Boolean.TRUE}, 
+                {list, "contains", "bar", Boolean.FALSE},
+                {list, "==", null, Boolean.FALSE}, 
+                {list, "!=", null, Boolean.TRUE}, 
+                {null, "==", null, Boolean.TRUE}, 
+                {null, "==", list, Boolean.FALSE}, 
+                {null, "!=", list, Boolean.TRUE}, 
+                {new BigDecimal( "42.42" ), "<", new BigDecimal( "43" ), Boolean.TRUE},
+                {new BigDecimal( "42.42" ), ">", new BigDecimal( "43" ), Boolean.FALSE}, 
+                {new BigDecimal( "42.42" ), "<=", new BigDecimal( "42.42" ), Boolean.TRUE}, 
+                {new BigInteger( "42" ), ">=", new BigInteger( "43" ), Boolean.FALSE},
+                {new BigInteger( "42" ), ">=", new BigInteger( "43" ), Boolean.FALSE}, 
+                {list, "excludes", "baz", Boolean.TRUE}, 
+                {list, "excludes", "foo", Boolean.FALSE}
 
         };
 
@@ -55,8 +69,17 @@
 
         final Object[] field = new Object[]{"foo", "bar"};
 
-        final Object[][] data = {{field, "==", new Object[]{"foo"}, Boolean.FALSE}, {field, "==", field, Boolean.TRUE}, {field, "!=", new Object[]{"foo"}, Boolean.TRUE}, {field, "contains", "foo", Boolean.TRUE}, {field, "!=", null, Boolean.TRUE},
-                {field, "==", null, Boolean.FALSE}};
+        final Object[][] data = {
+                {field, "==", new Object[]{"foo"}, Boolean.FALSE}, 
+                {field, "==", field, Boolean.TRUE}, 
+                {field, "!=", new Object[]{"foo"}, Boolean.TRUE}, 
+                {field, "contains", "foo", Boolean.TRUE}, 
+                {field, "!=", null, Boolean.TRUE},
+                {field, "==", null, Boolean.FALSE}, 
+                {null, "==", field, Boolean.FALSE},
+                {null, "==", null, Boolean.TRUE},
+                {null, "!=", field, Boolean.TRUE}, 
+                {null, "!=", null, Boolean.FALSE}};
 
         runEvaluatorTest( data,
                           Evaluator.ARRAY_TYPE );
@@ -65,10 +88,20 @@
 
     public void testString() {
 
-        final Object[][] data = {{"foo", "==", "bar", Boolean.FALSE}, {"foo", "==", "foo", Boolean.TRUE}, {"foo", "!=", "bar", Boolean.TRUE}, {"something foo", "matches", ".*foo", Boolean.TRUE}, {"foo", "matches", ".*foo", Boolean.TRUE},
-                {"foo", "matches", "bar", Boolean.FALSE}, {null, "matches", ".*foo", Boolean.FALSE}, {"foo", "==", null, Boolean.FALSE}, {"foo", "!=", null, Boolean.TRUE}, {null, "==", null, Boolean.TRUE}, {"foo", "!=", null, Boolean.TRUE},
-                {null, "!=", "foo", Boolean.TRUE}, {null, "!=", null, Boolean.FALSE}
-
+        final Object[][] data = {
+                {"foo", "==", "bar", Boolean.FALSE}, 
+                {"foo", "==", "foo", Boolean.TRUE}, 
+                {"foo", "!=", "bar", Boolean.TRUE}, 
+                {"something foo", "matches", ".*foo", Boolean.TRUE}, 
+                {"foo", "matches", ".*foo", Boolean.TRUE},
+                {"foo", "matches", "bar", Boolean.FALSE}, 
+                {null, "matches", ".*foo", Boolean.FALSE}, 
+                {"foo", "==", null, Boolean.FALSE}, 
+                {"foo", "!=", null, Boolean.TRUE}, 
+                {null, "==", null, Boolean.TRUE}, 
+                {"foo", "!=", null, Boolean.TRUE},
+                {null, "!=", "foo", Boolean.TRUE}, 
+                {null, "!=", null, Boolean.FALSE}
         };
 
         runEvaluatorTest( data,
@@ -78,9 +111,19 @@
 
     public void testInteger() {
 
-        final Object[][] data = {{new Integer( 42 ), "==", new Integer( 42 ), Boolean.TRUE}, {new Integer( 42 ), "<", new Integer( 43 ), Boolean.TRUE}, {new Integer( 42 ), ">=", new Integer( 41 ), Boolean.TRUE},
-                {new Integer( 42 ), "!=", new Integer( 41 ), Boolean.TRUE}, {new Integer( 42 ), ">", new Integer( 41 ), Boolean.TRUE}, {new Integer( 42 ), "<=", new Integer( 42 ), Boolean.TRUE},
-                {new Integer( 42 ), ">", new Integer( 100 ), Boolean.FALSE}, {new Integer( 42 ), "==", null, Boolean.FALSE}, {new Integer( 42 ), "!=", null, Boolean.TRUE}, {null, "==", new Integer( 42 ), Boolean.FALSE},
+        final Object[][] data = {
+                {new Integer( 42 ), "==", new Integer( 42 ), Boolean.TRUE}, 
+                {new Integer( 42 ), "<", new Integer( 43 ), Boolean.TRUE}, 
+                {new Integer( 42 ), ">=", new Integer( 41 ), Boolean.TRUE},
+                {new Integer( 42 ), "!=", new Integer( 41 ), Boolean.TRUE}, 
+                {new Integer( 42 ), ">", new Integer( 41 ), Boolean.TRUE}, 
+                {new Integer( 42 ), "<=", new Integer( 42 ), Boolean.TRUE},
+                {new Integer( 42 ), ">", new Integer( 100 ), Boolean.FALSE}, 
+                {new Integer( 42 ), "==", null, Boolean.FALSE}, 
+                {new Integer( 42 ), "!=", null, Boolean.TRUE}, 
+                {null, "==", null, Boolean.TRUE}, 
+                {null, "==", new Integer( 42 ), Boolean.FALSE},
+                {null, "!=", null, Boolean.FALSE}, 
                 {null, "!=", new Integer( 42 ), Boolean.TRUE}};
 
         runEvaluatorTest( data,
@@ -91,8 +134,16 @@
     public void testShort() {
 
         //Test data: Obj1, Operand, Obj2
-        final Object[][] data = {{new Short( (short) 42 ), "==", new Short( (short) 42 ), Boolean.TRUE}, {new Short( (short) 42 ), "<", new Short( (short) 43 ), Boolean.TRUE}, {new Short( (short) 42 ), ">=", new Short( (short) 41 ), Boolean.TRUE},
-                {new Short( (short) 42 ), "!=", new Short( (short) 41 ), Boolean.TRUE}, {new Short( (short) 42 ), "!=", null, Boolean.TRUE}};
+        final Object[][] data = {
+                {new Short( (short) 42 ), "==", new Short( (short) 42 ), Boolean.TRUE}, 
+                {new Short( (short) 42 ), "<", new Short( (short) 43 ), Boolean.TRUE}, 
+                {new Short( (short) 42 ), ">=", new Short( (short) 41 ), Boolean.TRUE},
+                {new Short( (short) 42 ), "!=", new Short( (short) 41 ), Boolean.TRUE}, 
+                {new Short( (short) 42 ), "!=", null, Boolean.TRUE},
+                {null, "==", null, Boolean.TRUE}, 
+                {null, "==", new Short( (short) 42 ), Boolean.FALSE},
+                {null, "!=", null, Boolean.FALSE}, 
+                {null, "!=", new Short( (short) 42 ), Boolean.TRUE}};
 
         runEvaluatorTest( data,
                           Evaluator.SHORT_TYPE );
@@ -101,8 +152,16 @@
     public void testBoolean() {
 
         //Test data: Obj1, Operand, Obj2
-        final Object[][] data = {{new Boolean( true ), "==", new Boolean( true ), Boolean.TRUE}, {new Boolean( false ), "!=", new Boolean( true ), Boolean.TRUE}, {new Boolean( true ), "==", new Boolean( false ), Boolean.FALSE},
-                {new Boolean( true ), "!=", new Boolean( false ), Boolean.TRUE}, {new Boolean( true ), "==", null, Boolean.FALSE}, {new Boolean( true ), "!=", null, Boolean.TRUE}, {null, "==", null, Boolean.TRUE}
+        final Object[][] data = {
+                {new Boolean( true ), "==", new Boolean( true ), Boolean.TRUE}, 
+                {new Boolean( false ), "!=", new Boolean( true ), Boolean.TRUE}, 
+                {new Boolean( true ), "==", new Boolean( false ), Boolean.FALSE},
+                {new Boolean( true ), "!=", new Boolean( false ), Boolean.TRUE}, 
+                {new Boolean( true ), "==", null, Boolean.FALSE}, 
+                {new Boolean( true ), "!=", null, Boolean.TRUE}, 
+                {null, "==", new Boolean( true ), Boolean.FALSE}, 
+                {null, "!=", new Boolean( true ), Boolean.TRUE}, 
+                {null, "==", null, Boolean.TRUE}
 
         };
 
@@ -111,59 +170,138 @@
     }
 
     public void testDouble() {
-        final Object[][] data = {{new Double( 42 ), "==", new Double( 42 ), Boolean.TRUE}, {new Double( 42 ), "<", new Double( 43 ), Boolean.TRUE}, {new Double( 42 ), ">=", new Double( 41 ), Boolean.TRUE},
-                {new Double( 42 ), "!=", new Double( 41 ), Boolean.TRUE}, {new Double( 42 ), ">", new Double( 41 ), Boolean.TRUE}, {new Double( 42 ), ">=", new Double( 41 ), Boolean.TRUE}, {new Double( 42 ), ">=", new Double( 42 ), Boolean.TRUE},
-                {new Double( 42 ), ">=", new Double( 100 ), Boolean.FALSE}, {new Double( 42 ), "<", new Double( 1 ), Boolean.FALSE}, {new Double( 42 ), "==", null, Boolean.FALSE}, {null, "!=", new Double( 1 ), Boolean.TRUE}};
+        final Object[][] data = {
+                {new Double( 42 ), "==", new Double( 42 ), Boolean.TRUE}, 
+                {new Double( 42 ), "<", new Double( 43 ), Boolean.TRUE}, 
+                {new Double( 42 ), ">=", new Double( 41 ), Boolean.TRUE},
+                {new Double( 42 ), "!=", new Double( 41 ), Boolean.TRUE}, 
+                {new Double( 42 ), ">", new Double( 41 ), Boolean.TRUE}, 
+                {new Double( 42 ), ">=", new Double( 41 ), Boolean.TRUE}, 
+                {new Double( 42 ), ">=", new Double( 42 ), Boolean.TRUE},
+                {new Double( 42 ), ">=", new Double( 100 ), Boolean.FALSE}, 
+                {new Double( 42 ), "<", new Double( 1 ), Boolean.FALSE}, 
+                {new Double( 42 ), "==", null, Boolean.FALSE}, 
+                {new Double( 42 ), "!=", null, Boolean.TRUE}, 
+                {null, "==", null, Boolean.TRUE}, 
+                {null, "==", new Double( 42 ), Boolean.FALSE},
+                {null, "!=", null, Boolean.FALSE}, 
+                {null, "!=", new Double( 42 ), Boolean.TRUE}};
 
         runEvaluatorTest( data,
                           Evaluator.DOUBLE_TYPE );
     }
 
     public void testFloat() {
-        final Object[][] data = {{new Float( 42 ), "==", new Float( 42 ), Boolean.TRUE}, {new Float( 42 ), "<", new Float( 43 ), Boolean.TRUE}, {new Float( 42 ), ">=", new Float( 41 ), Boolean.TRUE},
-                {new Float( 42 ), "!=", new Float( 41 ), Boolean.TRUE}, {new Float( 42 ), ">", new Float( 41 ), Boolean.TRUE}, {new Float( 42 ), ">=", new Float( 41 ), Boolean.TRUE}, {new Float( 42 ), ">=", new Float( 42 ), Boolean.TRUE},
-                {new Float( 42 ), ">=", new Float( 100 ), Boolean.FALSE}, {new Float( 42 ), "<", new Float( 1 ), Boolean.FALSE}, {new Float( 42 ), "==", null, Boolean.FALSE}, {null, "!=", new Float( 1 ), Boolean.TRUE}};
+        final Object[][] data = {
+                {new Float( 42 ), "==", new Float( 42 ), Boolean.TRUE}, 
+                {new Float( 42 ), "<", new Float( 43 ), Boolean.TRUE}, 
+                {new Float( 42 ), ">=", new Float( 41 ), Boolean.TRUE},
+                {new Float( 42 ), "!=", new Float( 41 ), Boolean.TRUE}, 
+                {new Float( 42 ), ">", new Float( 41 ), Boolean.TRUE}, 
+                {new Float( 42 ), ">=", new Float( 41 ), Boolean.TRUE}, 
+                {new Float( 42 ), ">=", new Float( 42 ), Boolean.TRUE},
+                {new Float( 42 ), ">=", new Float( 100 ), Boolean.FALSE}, 
+                {new Float( 42 ), "<", new Float( 1 ), Boolean.FALSE}, 
+                {new Float( 42 ), "==", null, Boolean.FALSE}, 
+                {new Float( 42 ), "!=", null, Boolean.TRUE}, 
+                {null, "==", null, Boolean.TRUE}, 
+                {null, "==", new Float( 42 ), Boolean.FALSE},
+                {null, "!=", null, Boolean.FALSE}, 
+                {null, "!=", new Float( 42 ), Boolean.TRUE}};
 
         runEvaluatorTest( data,
                           Evaluator.FLOAT_TYPE );
     }
 
     public void testLong() {
-        final Object[][] data = {{new Long( 42 ), "==", new Long( 42 ), Boolean.TRUE}, {new Long( 42 ), "<", new Long( 43 ), Boolean.TRUE}, {new Long( 42 ), ">=", new Long( 41 ), Boolean.TRUE}, {new Long( 42 ), "!=", new Long( 41 ), Boolean.TRUE},
-                {new Long( 42 ), ">", new Long( 41 ), Boolean.TRUE}, {new Long( 42 ), ">=", new Long( 41 ), Boolean.TRUE}, {new Long( 42 ), ">=", new Long( 42 ), Boolean.TRUE}, {new Long( 42 ), ">=", new Long( 100 ), Boolean.FALSE},
-                {new Long( 42 ), "<", new Long( 1 ), Boolean.FALSE}, {new Long( 42 ), "==", null, Boolean.FALSE}, {null, "!=", new Long( 1 ), Boolean.TRUE}};
+        final Object[][] data = {
+                {new Long( 42 ), "==", new Long( 42 ), Boolean.TRUE}, 
+                {new Long( 42 ), "<", new Long( 43 ), Boolean.TRUE}, 
+                {new Long( 42 ), ">=", new Long( 41 ), Boolean.TRUE}, 
+                {new Long( 42 ), "!=", new Long( 41 ), Boolean.TRUE},
+                {new Long( 42 ), ">", new Long( 41 ), Boolean.TRUE}, 
+                {new Long( 42 ), ">=", new Long( 41 ), Boolean.TRUE}, 
+                {new Long( 42 ), ">=", new Long( 42 ), Boolean.TRUE}, 
+                {new Long( 42 ), ">=", new Long( 100 ), Boolean.FALSE},
+                {new Long( 42 ), "<", new Long( 1 ), Boolean.FALSE},
+                {new Long( 42 ), "==", null, Boolean.FALSE}, 
+                {new Long( 42 ), "!=", null, Boolean.TRUE}, 
+                {null, "==", null, Boolean.TRUE}, 
+                {null, "==", new Long( 42 ), Boolean.FALSE},
+                {null, "!=", null, Boolean.FALSE}, 
+                {null, "!=", new Long( 42 ), Boolean.TRUE}};
 
         runEvaluatorTest( data,
                           Evaluator.LONG_TYPE );
     }
 
     public void testCharacter() {
-        final Object[][] data = {{new Character( 'a' ), "==", new Character( 'a' ), Boolean.TRUE}, {new Character( 'a' ), "<", new Character( 'b' ), Boolean.TRUE}, {new Character( 'a' ), ">=", new Character( 'a' ), Boolean.TRUE},
-                {new Character( 'a' ), "!=", new Character( 'Z' ), Boolean.TRUE}, {new Character( 'z' ), ">", new Character( 'a' ), Boolean.TRUE}, {new Character( 'z' ), ">=", new Character( 'z' ), Boolean.TRUE},
-                {new Character( 'z' ), ">=", new Character( 'a' ), Boolean.TRUE}, {new Character( 'a' ), ">=", new Character( 'z' ), Boolean.FALSE}, {new Character( 'z' ), "<", new Character( 'a' ), Boolean.FALSE},
-                {new Character( 'z' ), "==", null, Boolean.FALSE}, {null, "!=", new Character( 'a' ), Boolean.TRUE}};
+        final Object[][] data = {
+                {new Character( 'a' ), "==", new Character( 'a' ), Boolean.TRUE}, 
+                {new Character( 'a' ), "<", new Character( 'b' ), Boolean.TRUE}, 
+                {new Character( 'a' ), ">=", new Character( 'a' ), Boolean.TRUE},
+                {new Character( 'a' ), "!=", new Character( 'Z' ), Boolean.TRUE}, 
+                {new Character( 'z' ), ">", new Character( 'a' ), Boolean.TRUE}, 
+                {new Character( 'z' ), ">=", new Character( 'z' ), Boolean.TRUE},
+                {new Character( 'z' ), ">=", new Character( 'a' ), Boolean.TRUE}, 
+                {new Character( 'a' ), ">=", new Character( 'z' ), Boolean.FALSE}, 
+                {new Character( 'z' ), "<", new Character( 'a' ), Boolean.FALSE},
+                {new Character( 'z' ), "==", null, Boolean.FALSE}, 
+                {new Character( 'z' ), "!=", null, Boolean.TRUE}, 
+                {null, "==", null, Boolean.TRUE}, 
+                {null, "==", new Character( 'z' ), Boolean.FALSE},
+                {null, "!=", null, Boolean.FALSE}, 
+                {null, "!=", new Character( 'z' ), Boolean.TRUE}};
         runEvaluatorTest( data,
                           Evaluator.CHAR_TYPE );
     }
 
     public void testDate() throws Exception {
 
-        final SimpleDateFormat df = new SimpleDateFormat( "dd-MMM-yyyy", Locale.ENGLISH );
+        final SimpleDateFormat df = new SimpleDateFormat( "dd-MMM-yyyy",
+                                                          Locale.ENGLISH );
 
         //note that strings are also allowed on the right
-        final Object[][] data = {{df.parse( "10-Jul-1974" ), "==", df.parse( "10-Jul-1974" ), Boolean.TRUE}, {df.parse( "10-Jul-1974" ), "<", df.parse( "11-Jul-1974" ), Boolean.TRUE},
-                {df.parse( "10-Jul-1974" ), ">=", df.parse( "10-Jul-1974" ), Boolean.TRUE}, {df.parse( "10-Jul-1974" ), "!=", df.parse( "11-Jul-1974" ), Boolean.TRUE}, {df.parse( "10-Jul-2000" ), ">", df.parse( "10-Jul-1974" ), Boolean.TRUE},
-                {df.parse( "10-Jul-1974" ), ">=", df.parse( "10-Jul-1974" ), Boolean.TRUE}, {df.parse( "11-Jul-1974" ), ">=", df.parse( "10-Jul-1974" ), Boolean.TRUE}, {df.parse( "10-Jul-1974" ), ">=", df.parse( "11-Jul-1974" ), Boolean.FALSE},
-                {df.parse( "10-Jul-2000" ), "<", df.parse( "10-Jul-1974" ), Boolean.FALSE}, {df.parse( "10-Jul-1974" ), "<", "11-Jul-1974", Boolean.TRUE}, {df.parse( "10-Jul-1974" ), ">=", "10-Jul-1974", Boolean.TRUE},
-                {df.parse( "10-Jul-1974" ), "!=", "11-Jul-1974", Boolean.TRUE}, {df.parse( "10-Jul-2000" ), ">", "10-Jul-1974", Boolean.TRUE}, {df.parse( "10-Jul-1974" ), ">=", "10-Jul-1974", Boolean.TRUE},
-                {df.parse( "11-Jul-1974" ), ">=", "10-Jul-1974", Boolean.TRUE}, {df.parse( "10-Jul-1974" ), ">=", "11-Jul-1974", Boolean.FALSE}, {df.parse( "10-Jul-1974" ), "==", null, Boolean.FALSE}, {null, "!=", "11-Jul-1974", Boolean.TRUE}};
+        final Object[][] data = {
+                {df.parse( "10-Jul-1974" ), "==", df.parse( "10-Jul-1974" ), Boolean.TRUE}, 
+                {df.parse( "10-Jul-1974" ), "<", df.parse( "11-Jul-1974" ), Boolean.TRUE},
+                {df.parse( "10-Jul-1974" ), ">=", df.parse( "10-Jul-1974" ), Boolean.TRUE}, 
+                {df.parse( "10-Jul-1974" ), "!=", df.parse( "11-Jul-1974" ), Boolean.TRUE}, 
+                {df.parse( "10-Jul-2000" ), ">", df.parse( "10-Jul-1974" ), Boolean.TRUE},
+                {df.parse( "10-Jul-1974" ), ">=", df.parse( "10-Jul-1974" ), Boolean.TRUE}, 
+                {df.parse( "11-Jul-1974" ), ">=", df.parse( "10-Jul-1974" ), Boolean.TRUE}, 
+                {df.parse( "10-Jul-1974" ), ">=", df.parse( "11-Jul-1974" ), Boolean.FALSE},
+                {df.parse( "10-Jul-2000" ), "<", df.parse( "10-Jul-1974" ), Boolean.FALSE}, 
+                {df.parse( "10-Jul-1974" ), "<", "11-Jul-1974", Boolean.TRUE}, 
+                {df.parse( "10-Jul-1974" ), ">=", "10-Jul-1974", Boolean.TRUE},
+                {df.parse( "10-Jul-1974" ), "!=", "11-Jul-1974", Boolean.TRUE}, 
+                {df.parse( "10-Jul-2000" ), ">", "10-Jul-1974", Boolean.TRUE}, 
+                {df.parse( "10-Jul-1974" ), ">=", "10-Jul-1974", Boolean.TRUE},
+                {df.parse( "11-Jul-1974" ), ">=", "10-Jul-1974", Boolean.TRUE}, 
+                {df.parse( "10-Jul-1974" ), ">=", "11-Jul-1974", Boolean.FALSE}, 
+                {df.parse( "10-Jul-1974" ), "==", null, Boolean.FALSE}, 
+                {df.parse( "10-Jul-1974" ), "!=", null, Boolean.TRUE}, 
+                {null, "==", null, Boolean.TRUE}, 
+                {null, "==", df.parse( "10-Jul-1974" ), Boolean.FALSE},
+                {null, "!=", null, Boolean.FALSE}, 
+                {null, "!=", df.parse( "10-Jul-1974" ), Boolean.TRUE}};
         runEvaluatorTest( data,
                           Evaluator.DATE_TYPE );
     }
 
     public void testByte() {
-        final Object[][] data = {{new Byte( "1" ), "==", new Byte( "1" ), Boolean.TRUE}, {new Byte( "1" ), "==", new Byte( "2" ), Boolean.FALSE}, {new Byte( "1" ), "!=", new Byte( "2" ), Boolean.TRUE},
-                {new Byte( "1" ), "!=", new Byte( "1" ), Boolean.FALSE}, {new Byte( "1" ), "<=", new Byte( "1" ), Boolean.TRUE}, {new Byte( "1" ), "==", null, Boolean.FALSE}, {null, "!=", new Byte( "1" ), Boolean.TRUE}};
+        final Object[][] data = {
+                {new Byte( "1" ), "==", new Byte( "1" ), Boolean.TRUE}, 
+                {new Byte( "1" ), "==", new Byte( "2" ), Boolean.FALSE}, 
+                {new Byte( "1" ), "!=", new Byte( "2" ), Boolean.TRUE},
+                {new Byte( "1" ), "!=", new Byte( "1" ), Boolean.FALSE}, 
+                {new Byte( "1" ), "<=", new Byte( "1" ), Boolean.TRUE}, 
+                {new Byte( "1" ), "==", null, Boolean.FALSE}, 
+                {new Byte( "1" ), "!=", null, Boolean.TRUE}, 
+                {null, "==", null, Boolean.TRUE}, 
+                {null, "==", new Byte( "1" ), Boolean.FALSE},
+                {null, "!=", null, Boolean.FALSE}, 
+                {null, "!=", new Byte( "1" ), Boolean.TRUE}};
         runEvaluatorTest( data,
                           Evaluator.BYTE_TYPE );
 

Modified: labs/jbossrules/branches/3.0.x/drools-core/src/test/java/org/drools/util/asm/TestBean.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-core/src/test/java/org/drools/util/asm/TestBean.java	2006-08-30 14:07:50 UTC (rev 6017)
+++ labs/jbossrules/branches/3.0.x/drools-core/src/test/java/org/drools/util/asm/TestBean.java	2006-08-30 14:12:08 UTC (rev 6018)
@@ -21,6 +21,7 @@
     private String  something;
     private int     number;
     private boolean blah;
+    private Object[] objArray;
 
     public boolean isBlah() {
         return this.blah;
@@ -58,4 +59,12 @@
         return new Long( 42424242 );
     }
 
+    public Object[] getObjArray() {
+        return objArray;
+    }
+
+    public void setObjArray(Object[] objArray) {
+        this.objArray = objArray;
+    }
+
 }
\ No newline at end of file




More information about the jboss-svn-commits mailing list