[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 &gt;= 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