[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