[jboss-svn-commits] JBL Code SVN: r19833 - in labs/jbossrules/trunk/drools-compiler/src/test: resources/org/drools/integrationtests and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu May 1 20:16:58 EDT 2008


Author: mark.proctor at jboss.com
Date: 2008-05-01 20:16:57 -0400 (Thu, 01 May 2008)
New Revision: 19833

Modified:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_FactTemplate.drl
Log:
JBRULES-1443 retract of Fact Template leads to NPE

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java	2008-05-02 00:16:42 UTC (rev 19832)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java	2008-05-02 00:16:57 UTC (rev 19833)
@@ -528,52 +528,6 @@
         assertEquals( 1, ((List)wm.getGlobal("list")).size() );
     }
 
-    public void testFactBindings() throws Exception {
-        final PackageBuilder builder = new PackageBuilder();
-        builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_FactBindings.drl" ) ) );
-        final Package pkg = builder.getPackage();
-
-        // add the package to a rulebase
-        RuleBase ruleBase = getRuleBase();
-        ruleBase.addPackage( pkg );
-        ruleBase    = SerializationHelper.serializeObject(ruleBase);
-        final WorkingMemory workingMemory = ruleBase.newStatefulSession();
-
-        final List events = new ArrayList();
-        final WorkingMemoryEventListener listener = new DefaultWorkingMemoryEventListener() {
-            public void objectUpdated(ObjectUpdatedEvent event) {
-                events.add( event );
-            }
-        };
-
-        workingMemory.addEventListener( listener );
-
-        final Person bigCheese = new Person( "big cheese" );
-        final Cheese cheddar = new Cheese( "cheddar",
-                                           15 );
-        bigCheese.setCheese( cheddar );
-
-        final FactHandle bigCheeseHandle = workingMemory.insert( bigCheese );
-        final FactHandle cheddarHandle = workingMemory.insert( cheddar );
-        workingMemory.fireAllRules();
-
-        ObjectUpdatedEvent event = (ObjectUpdatedEvent) events.get( 0 );
-        assertSame( cheddarHandle,
-                    event.getFactHandle() );
-        assertSame( cheddar,
-                    event.getOldObject() );
-        assertSame( cheddar,
-                    event.getObject() );
-
-        event = (ObjectUpdatedEvent) events.get( 1 );
-        assertSame( bigCheeseHandle,
-                    event.getFactHandle() );
-        assertSame( bigCheese,
-                    event.getOldObject() );
-        assertSame( bigCheese,
-                    event.getObject() );
-    }
-
     public void testNullHandling() throws Exception {
         final PackageBuilder builder = new PackageBuilder();
         builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_NullHandling.drl" ) ) );
@@ -789,7 +743,53 @@
         assertEquals( bill,
                       ((List)workingMemory.getGlobal("list")).get( 0 ) );
     }
+    
+    public void testFactBindings() throws Exception {
+        final PackageBuilder builder = new PackageBuilder();
+        builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_FactBindings.drl" ) ) );
+        final Package pkg = builder.getPackage();
 
+        // add the package to a rulebase
+        RuleBase ruleBase = getRuleBase();
+        ruleBase.addPackage( pkg );
+        ruleBase    = SerializationHelper.serializeObject(ruleBase);
+        final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+
+        final List events = new ArrayList();
+        final WorkingMemoryEventListener listener = new DefaultWorkingMemoryEventListener() {
+            public void objectUpdated(ObjectUpdatedEvent event) {
+                events.add( event );
+            }
+        };
+
+        workingMemory.addEventListener( listener );
+
+        final Person bigCheese = new Person( "big cheese" );
+        final Cheese cheddar = new Cheese( "cheddar",
+                                           15 );
+        bigCheese.setCheese( cheddar );
+
+        final FactHandle bigCheeseHandle = workingMemory.insert( bigCheese );
+        final FactHandle cheddarHandle = workingMemory.insert( cheddar );
+        workingMemory.fireAllRules();
+
+        ObjectUpdatedEvent event = (ObjectUpdatedEvent) events.get( 0 );
+        assertSame( cheddarHandle,
+                    event.getFactHandle() );
+        assertSame( cheddar,
+                    event.getOldObject() );
+        assertSame( cheddar,
+                    event.getObject() );
+
+        event = (ObjectUpdatedEvent) events.get( 1 );
+        assertSame( bigCheeseHandle,
+                    event.getFactHandle() );
+        assertSame( bigCheese,
+                    event.getOldObject() );
+        assertSame( bigCheese,
+                    event.getObject() );
+    }
+    
     public void testFactTemplate() throws Exception {
         final PackageBuilder builder = new PackageBuilder();
         builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_FactTemplate.drl" ) ) );
@@ -810,7 +810,7 @@
                                "stilton" );
         stilton.setFieldValue( "price",
                                new Integer( 100 ) );
-        workingMemory.insert( stilton );
+        InternalFactHandle stiltonHandle = ( InternalFactHandle ) workingMemory.insert( stilton );
         // TODO does not work for facts now. adding equals(object) to it.
 //        workingMemory    = SerializationHelper.serializeObject(workingMemory);
 
@@ -825,6 +825,7 @@
                     fact );
         assertEquals( new Integer( 200 ),
                       fact.getFieldValue( "price" ) );
+        assertEquals( -1, stiltonHandle.getId() );        
     }
     
     public void testFactTemplateFieldBinding() throws Exception {

Modified: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_FactTemplate.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_FactTemplate.drl	2008-05-02 00:16:42 UTC (rev 19832)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_FactTemplate.drl	2008-05-02 00:16:57 UTC (rev 19833)
@@ -15,4 +15,5 @@
     then
     	$stilton.setFieldValue( "price", new Integer( 200 ) );
     	list.add( $stilton );
+    	retract( $stilton );
 end    
\ No newline at end of file




More information about the jboss-svn-commits mailing list