[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