[jboss-svn-commits] JBL Code SVN: r5449 - in labs/jbossrules/trunk/drools-core/src/test/java/org/drools: . facttemplates
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Aug 3 13:33:17 EDT 2006
Author: mark.proctor at jboss.com
Date: 2006-08-03 13:33:13 -0400 (Thu, 03 Aug 2006)
New Revision: 5449
Added:
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/TestFactTemplate.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/TestFactTemplateFieldExtractor.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/TestFieldTemplate.java
Log:
JBRULES-328 FactTemplates
-added unit tests for FactTemplate
Added: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/TestFactTemplate.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/TestFactTemplate.java 2006-08-03 17:15:13 UTC (rev 5448)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/TestFactTemplate.java 2006-08-03 17:33:13 UTC (rev 5449)
@@ -0,0 +1,124 @@
+package org.drools.facttemplates;
+
+import junit.framework.TestCase;
+
+public class TestFactTemplate extends TestCase {
+ public void testFieldsAndGetters() {
+ FieldTemplate cheeseName = new FieldTemplateImpl( "name",
+ 0,
+ String.class );
+ FieldTemplate cheesePrice = new FieldTemplateImpl( "price",
+ 1,
+ Integer.class );
+ FieldTemplate[] fields = new FieldTemplate[]{cheeseName, cheesePrice};
+ FactTemplate cheese = new FactTemplateImpl( "org.store",
+ "Cheese",
+ fields );
+
+ assertEquals( "org.store",
+ cheese.getPackage() );
+ assertEquals( "Cheese",
+ cheese.getName() );
+
+ assertEquals( 2,
+ cheese.getNumberOfFields() );
+
+ assertSame( fields,
+ cheese.getAllFieldTemplates() );
+
+ assertSame( cheeseName,
+ cheese.getFieldTemplate( 0 ) );
+ assertSame( cheesePrice,
+ cheese.getFieldTemplate( 1 ) );
+
+ assertSame( cheeseName,
+ cheese.getFieldTemplate( "name" ) );
+ assertSame( cheesePrice,
+ cheese.getFieldTemplate( "price" ) );
+
+ assertEquals( 0,
+ cheese.getFieldTemplateIndex( "name" ) );
+ assertEquals( 1,
+ cheese.getFieldTemplateIndex( "price" ) );
+ }
+
+ public void testEqualsAndHashCode() {
+ // Create cheese1 with name and price fields
+ FieldTemplate cheeseName = new FieldTemplateImpl( "name",
+ 0,
+ String.class );
+ FieldTemplate cheesePrice = new FieldTemplateImpl( "price",
+ 1,
+ Integer.class );
+ FieldTemplate[] fields1 = new FieldTemplate[]{cheeseName, cheesePrice};
+ FactTemplate cheese1 = new FactTemplateImpl( "org.store",
+ "Cheese",
+ fields1 );
+
+ // Create cheese2 with type and price fields
+ FieldTemplate cheeseType = new FieldTemplateImpl( "type",
+ 0,
+ String.class );
+ FieldTemplate[] fields2 = new FieldTemplate[]{cheeseType, cheesePrice};
+ FactTemplate cheese2 = new FactTemplateImpl( "org.store",
+ "Cheese",
+ fields2 );
+
+ assertNotSame( cheese1, cheese2 );
+
+ assertFalse( cheese1.equals( cheese2 ) );
+
+ assertFalse( cheese1.hashCode() == cheese2.hashCode() );
+
+
+
+ // create cheese3 with name and price fields, using new instances
+ FieldTemplate cheeseName2 = new FieldTemplateImpl( "name",
+ 0,
+ String.class );
+ FieldTemplate cheesePrice2 = new FieldTemplateImpl( "price",
+ 1,
+ Integer.class );
+ FieldTemplate[] fields3 = new FieldTemplate[]{cheeseName2, cheesePrice2};
+ FactTemplate cheese3 = new FactTemplateImpl( "org.store",
+ "Cheese",
+ fields3 );
+
+ assertNotSame( cheese1, cheese3 );
+ assertNotSame( cheese1.getAllFieldTemplates(), cheese3.getAllFieldTemplates() );
+ assertEquals( cheese1, cheese3 );
+ assertEquals( cheese1.hashCode(), cheese3.hashCode() );
+ }
+
+ public void testFacts() {
+ FieldTemplate cheeseName = new FieldTemplateImpl( "name",
+ 0,
+ String.class );
+ FieldTemplate cheesePrice = new FieldTemplateImpl( "price",
+ 1,
+ Integer.class );
+ FieldTemplate[] fields1 = new FieldTemplate[]{cheeseName, cheesePrice};
+ FactTemplate cheese1 = new FactTemplateImpl( "org.store",
+ "Cheese",
+ fields1 );
+
+ Fact stilton1 = cheese1.createFact( 10 );
+ stilton1.setFieldValue( "name", "stilton" );
+ stilton1.setFieldValue( "price", new Integer( 200 ) );
+
+ Fact stilton2 = cheese1.createFact( 11 );
+ stilton2.setFieldValue( 0, "stilton" );
+ stilton2.setFieldValue( 1, new Integer( 200 ) );
+
+ assertEquals( stilton1, stilton2 );
+ assertEquals( stilton1.hashCode(), stilton2.hashCode() );
+
+ Fact brie = cheese1.createFact( 12 );
+ brie.setFieldValue( "name", "brie" );
+ brie.setFieldValue( "price", new Integer( 55 ) );
+
+ assertFalse( stilton1.equals( brie ));
+ assertFalse( stilton1.hashCode() == brie.hashCode() );
+
+ }
+}
Added: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/TestFactTemplateFieldExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/TestFactTemplateFieldExtractor.java 2006-08-03 17:15:13 UTC (rev 5448)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/TestFactTemplateFieldExtractor.java 2006-08-03 17:33:13 UTC (rev 5449)
@@ -0,0 +1,49 @@
+package org.drools.facttemplates;
+
+import org.drools.spi.Extractor;
+
+import junit.framework.TestCase;
+
+public class TestFactTemplateFieldExtractor extends TestCase {
+ public void test1() {
+ FieldTemplate cheeseName = new FieldTemplateImpl( "name",
+ 0,
+ String.class );
+ FieldTemplate cheesePrice = new FieldTemplateImpl( "price",
+ 1,
+ Integer.class );
+ FieldTemplate[] fields = new FieldTemplate[]{cheeseName, cheesePrice};
+ FactTemplate cheese = new FactTemplateImpl( "org.store",
+ "Cheese",
+ fields );
+
+ Extractor extractName = new FactTemplateFieldExtractor( cheese,
+ 0 );
+ Extractor extractPrice = new FactTemplateFieldExtractor( cheese,
+ 1 );
+
+ Fact stilton = cheese.createFact( 10 );
+ stilton.setFieldValue( "name",
+ "stilton" );
+ stilton.setFieldValue( "price",
+ new Integer( 200 ) );
+
+ assertEquals( "stilton",
+ extractName.getValue( stilton ) );
+
+ assertEquals( new Integer( 200 ),
+ extractPrice.getValue( stilton ) );
+
+ Fact brie = cheese.createFact( 12 );
+ brie.setFieldValue( "name",
+ "brie" );
+ brie.setFieldValue( "price",
+ new Integer( 55 ) );
+
+ assertEquals( "brie",
+ extractName.getValue( brie ) );
+
+ assertEquals( new Integer( 55 ),
+ extractPrice.getValue( brie ) );
+ }
+}
Added: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/TestFieldTemplate.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/TestFieldTemplate.java 2006-08-03 17:15:13 UTC (rev 5448)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/facttemplates/TestFieldTemplate.java 2006-08-03 17:33:13 UTC (rev 5449)
@@ -0,0 +1,15 @@
+package org.drools.facttemplates;
+
+import org.drools.base.ValueType;
+
+import junit.framework.TestCase;
+
+public class TestFieldTemplate extends TestCase {
+ public void testFieldTemplate() {
+ FieldTemplate cheeseName = new FieldTemplateImpl("name", 5, String.class);
+ assertEquals( "name", cheeseName.getName() );
+ assertEquals( ValueType.STRING_TYPE, cheeseName.getValueType() );
+ assertEquals( 5, cheeseName.getIndex() );
+
+ }
+}
More information about the jboss-svn-commits
mailing list