[jboss-svn-commits] JBL Code SVN: r20194 - 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
Wed May 28 09:19:53 EDT 2008
Author: KrisVerlaenen
Date: 2008-05-28 09:19:53 -0400 (Wed, 28 May 2008)
New Revision: 20194
Added:
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ProcessTimerTest.java
Log:
Timer test
Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ProcessTimerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ProcessTimerTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/ProcessTimerTest.java 2008-05-28 13:19:53 UTC (rev 20194)
@@ -0,0 +1,75 @@
+package org.drools.integrationtests;
+
+import java.io.Reader;
+import java.io.StringReader;
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.WorkingMemory;
+import org.drools.compiler.PackageBuilder;
+import org.drools.process.instance.ProcessInstance;
+import org.drools.rule.Package;
+
+public class ProcessTimerTest extends TestCase {
+
+ public void testSimpleProcess() {
+ PackageBuilder builder = new PackageBuilder();
+ Reader source = new StringReader(
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
+ "<process xmlns=\"http://drools.org/drools-4.0/process\"\n" +
+ " xmlns:xs=\"http://www.w3.org/2001/XMLSchema-instance\"\n" +
+ " xs:schemaLocation=\"http://drools.org/drools-4.0/process drools-processes-4.0.xsd\"\n" +
+ " type=\"RuleFlow\" name=\"flow\" id=\"org.drools.timer\" package-name=\"org.drools\" version=\"1\" >\n" +
+ "\n" +
+ " <header>\n" +
+ " <imports>\n" +
+ " <import name=\"org.drools.Message\" />\n" +
+ " </imports>\n" +
+ " <globals>\n" +
+ " <global identifier=\"myList\" type=\"java.util.List\" />\n" +
+ " </globals>\n" +
+ " </header>\n" +
+ "\n" +
+ " <nodes>\n" +
+ " <start id=\"1\" name=\"Start\" />\n" +
+ " <end id=\"2\" name=\"End\" />\n" +
+ " <timer id=\"3\" name=\"Timer\" delay=\"2000\" period=\"1000\" />\n" +
+ " <action id=\"4\" name=\"Action\" dialect=\"java\" >System.out.println(\"Triggered\");\n" +
+ "insert( new Message() );\n" +
+ "myList.add( new Message() );</action>\n" +
+ " <milestone id=\"5\" name=\"Wait\" >Number( intValue >= 5 ) from accumulate ( m: Message( ), count( m ) )</milestone>\n" +
+ " </nodes>\n" +
+ "\n" +
+ " <connections>\n" +
+ " <connection from=\"5\" to=\"2\" />\n" +
+ " <connection from=\"1\" to=\"3\" />\n" +
+ " <connection from=\"3\" to=\"4\" />\n" +
+ " <connection from=\"4\" to=\"5\" />\n" +
+ " </connections>\n" +
+ "\n" +
+ "</process>");
+ builder.addRuleFlow(source);
+ Package pkg = builder.getPackage();
+ RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+ ruleBase.addPackage( pkg );
+ WorkingMemory workingMemory = ruleBase.newStatefulSession();
+ List myList = new ArrayList();
+ workingMemory.setGlobal("myList", myList);
+ ProcessInstance processInstance =
+ workingMemory.startProcess("org.drools.timer");
+ assertEquals(0, myList.size());
+ assertEquals(ProcessInstance.STATE_ACTIVE, processInstance.getState());
+ try {
+ Thread.sleep(10000);
+ } catch (InterruptedException e) {
+ // do nothing
+ }
+ assertEquals(5, myList.size());
+ assertEquals(ProcessInstance.STATE_COMPLETED, processInstance.getState());
+ }
+
+}
More information about the jboss-svn-commits
mailing list