[jboss-svn-commits] JBL Code SVN: r32383 - labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sun Apr 4 00:34:09 EDT 2010


Author: mark.proctor at jboss.com
Date: 2010-04-04 00:34:08 -0400 (Sun, 04 Apr 2010)
New Revision: 32383

Modified:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/CepEspTest.java
Log:
JBRULES-2299  Retracting events using PseudoClockScheduler causes ClassCastException
-This seems fixed, adding failing test anyway

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/CepEspTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/CepEspTest.java	2010-04-04 02:33:39 UTC (rev 32382)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/CepEspTest.java	2010-04-04 04:34:08 UTC (rev 32383)
@@ -3,6 +3,8 @@
 import java.io.IOException;
 import java.io.InputStreamReader;
 import java.io.Reader;
+import java.io.Serializable;
+import java.io.StringReader;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
@@ -40,6 +42,7 @@
 import org.drools.definition.KnowledgePackage;
 import org.drools.definitions.impl.KnowledgePackageImp;
 import org.drools.impl.StatefulKnowledgeSessionImpl;
+import org.drools.integrationtests.PseudoSchedulerRemoveJobTest.A;
 import org.drools.io.ResourceFactory;
 import org.drools.lang.descr.PackageDescr;
 import org.drools.rule.Package;
@@ -47,6 +50,7 @@
 import org.drools.runtime.KnowledgeSessionConfiguration;
 import org.drools.runtime.StatefulKnowledgeSession;
 import org.drools.runtime.conf.ClockTypeOption;
+import org.drools.runtime.rule.FactHandle;
 import org.drools.time.SessionPseudoClock;
 import org.drools.time.impl.DurationTimer;
 import org.drools.time.impl.PseudoClockScheduler;
@@ -174,7 +178,7 @@
         KnowledgePackage kpkg = pkgs.iterator().next();
 
         // serialize the package
-        Package internalPkg = ((KnowledgePackageImp)kpkg).pkg; // nasty trick for test purposes
+        Package internalPkg = ((KnowledgePackageImp) kpkg).pkg; // nasty trick for test purposes
         byte[] serializedPkg = DroolsStreamUtils.streamOut( internalPkg );
 
         // recreate the pkg using a new kbuilder
@@ -985,7 +989,7 @@
 
         final Rule rule = ruleBase.getPackage( "org.drools" ).getRule( "Delaying Not" );
         assertEquals( 10000,
-                      ((DurationTimer)rule.getTimer()).getDuration() );
+                      ((DurationTimer) rule.getTimer()).getDuration() );
 
         SessionConfiguration conf = new SessionConfiguration();
         conf.setClockType( ClockType.PSEUDO_CLOCK );
@@ -1386,4 +1390,42 @@
         }
 
     }
+
+    public void testPseudoSchedulerRemoveJobTest() {
+        String str = "import org.drools.integrationtests.CepEspTest.A\n";
+        str += "declare A\n";
+        str += "    @role( event )\n";
+        str += "end\n";
+        str += "rule A\n";
+        str += "when\n";
+        str += "   $a : A()\n";
+        str += "   not A(this after [1s,10s] $a)\n";
+        str += "then\n";
+        str += "end";
+
+        KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+        kbuilder.add( ResourceFactory.newReaderResource( new StringReader( str ) ),
+                      ResourceType.DRL );
+        if ( kbuilder.hasErrors() ) {
+            throw new RuntimeException( kbuilder.getErrors().toString() );
+        }
+        KnowledgeBaseConfiguration config = KnowledgeBaseFactory.newKnowledgeBaseConfiguration();
+        config.setOption( EventProcessingOption.STREAM );
+
+        KnowledgeSessionConfiguration sessionConfig = KnowledgeBaseFactory.newKnowledgeSessionConfiguration();
+        sessionConfig.setOption( ClockTypeOption.get( "pseudo" ) );
+        KnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase( config );
+        knowledgeBase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+        StatefulKnowledgeSession ksession = knowledgeBase.newStatefulKnowledgeSession( sessionConfig,
+                                                              KnowledgeBaseFactory.newEnvironment() );
+        PseudoClockScheduler pseudoClock = ksession.getSessionClock();
+        
+        FactHandle h = ksession.insert(new A());
+        ksession.retract(h);
+    }
+
+    public static class A
+        implements
+        Serializable {
+    }
 }



More information about the jboss-svn-commits mailing list