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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Oct 25 15:01:05 EDT 2010


Author: tsurdilovic
Date: 2010-10-25 15:01:05 -0400 (Mon, 25 Oct 2010)
New Revision: 35719

Added:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/RoutingMessage.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StrEvaluatorTest.java
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/strevaluator_test.drl
Log:
JBRULES-2753 : Add the StrEvaluator to the list of core evaluators


Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/RoutingMessage.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/RoutingMessage.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/RoutingMessage.java	2010-10-25 19:01:05 UTC (rev 35719)
@@ -0,0 +1,14 @@
+package org.drools;
+
+public class RoutingMessage {
+    private String routingValue;
+
+    public String getRoutingValue() {
+            return routingValue;
+    }
+
+    public void setRoutingValue(String routingValue) {
+            this.routingValue = routingValue;
+    }
+}
+


Property changes on: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/RoutingMessage.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StrEvaluatorTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StrEvaluatorTest.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StrEvaluatorTest.java	2010-10-25 19:01:05 UTC (rev 35719)
@@ -0,0 +1,135 @@
+package org.drools.integrationtests;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+import org.drools.KnowledgeBase;
+import org.drools.KnowledgeBaseFactory;
+import org.drools.RoutingMessage;
+import org.drools.builder.KnowledgeBuilder;
+import org.drools.builder.KnowledgeBuilderError;
+import org.drools.builder.KnowledgeBuilderErrors;
+import org.drools.builder.KnowledgeBuilderFactory;
+import org.drools.builder.ResourceType;
+import org.drools.io.ResourceFactory;
+import org.drools.runtime.StatefulKnowledgeSession;
+
+public class StrEvaluatorTest extends TestCase {
+	
+	public void testStrStartsWith() throws Exception {
+		KnowledgeBase kbase = readKnowledgeBase();
+		StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+		
+		List list = new ArrayList();
+		ksession.setGlobal( "list", list );
+		
+		RoutingMessage m = new RoutingMessage();
+		m.setRoutingValue("R1:messageBody");
+		
+		ksession.insert(m);
+		ksession.fireAllRules();
+		assertTrue(list.size() == 4);
+		assertTrue( ((String) list.get(3)).equals("Message starts with R1") );
+		
+	}
+	
+	public void testStrEndsWith() throws Exception {
+		KnowledgeBase kbase = readKnowledgeBase();
+		StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+		
+		List list = new ArrayList();
+		ksession.setGlobal( "list", list );
+		
+		RoutingMessage m = new RoutingMessage();
+		m.setRoutingValue("messageBody:R2");
+		
+		ksession.insert(m);
+		ksession.fireAllRules();
+		assertTrue(list.size() == 4);
+		assertTrue( ((String) list.get(3)).equals("Message ends with R2") );
+		
+	}
+	
+	public void testStrLengthEquals() throws Exception {
+		KnowledgeBase kbase = readKnowledgeBase();
+		StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+		
+		List list = new ArrayList();
+		ksession.setGlobal( "list", list );
+		
+		RoutingMessage m = new RoutingMessage();
+		m.setRoutingValue("R1:messageBody:R2");
+		
+		ksession.insert(m);
+		ksession.fireAllRules();
+		assertTrue(list.size() == 6);
+		assertTrue( ((String) list.get(3)).equals("Message length is 17") );
+		
+	}
+	
+	public void testStrNotStartsWith() throws Exception {
+		KnowledgeBase kbase = readKnowledgeBase();
+		StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+		
+		List list = new ArrayList();
+		ksession.setGlobal( "list", list );
+		
+		RoutingMessage m = new RoutingMessage();
+		m.setRoutingValue("messageBody");
+		
+		ksession.insert(m);
+		ksession.fireAllRules();
+		assertTrue(list.size() == 3);
+		assertTrue( ((String) list.get(1)).equals("Message does not start with R2") );
+	}
+	
+	public void testStrNotEndsWith() throws Exception {
+		KnowledgeBase kbase = readKnowledgeBase();
+		StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+		
+		List list = new ArrayList();
+		ksession.setGlobal( "list", list );
+		
+		RoutingMessage m = new RoutingMessage();
+		m.setRoutingValue("messageBody");
+		
+		ksession.insert(m);
+		ksession.fireAllRules();
+		assertTrue(list.size() == 3);
+		assertTrue( ((String) list.get(0)).equals("Message does not end with R1") );
+	}
+	
+	public void testStrLengthNoEquals() throws Exception {
+		KnowledgeBase kbase = readKnowledgeBase();
+		StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+		
+		List list = new ArrayList();
+		ksession.setGlobal( "list", list );
+		
+		RoutingMessage m = new RoutingMessage();
+		m.setRoutingValue("messageBody");
+		
+		ksession.insert(m);
+		ksession.fireAllRules();
+		assertTrue(list.size() == 3);
+		assertTrue( ((String) list.get(2)).equals("Message length is not 17") );
+	}
+	
+	private KnowledgeBase readKnowledgeBase() throws Exception {
+		KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+		kbuilder.add( ResourceFactory.newInputStreamResource( getClass().getResourceAsStream( "strevaluator_test.drl" ) ),
+                ResourceType.DRL );
+		KnowledgeBuilderErrors errors = kbuilder.getErrors();
+		if (errors.size() > 0) {
+			for (KnowledgeBuilderError error: errors) {
+				System.err.println(error);
+			}
+			throw new IllegalArgumentException("Could not parse knowledge." + errors.toArray());
+		}
+		KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+		kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());
+		return kbase;
+	}
+
+}


Property changes on: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/StrEvaluatorTest.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/strevaluator_test.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/strevaluator_test.drl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/strevaluator_test.drl	2010-10-25 19:01:05 UTC (rev 35719)
@@ -0,0 +1,55 @@
+package org.drools.test
+
+import org.drools.RoutingMessage;
+import java.util.List;
+
+global List list;
+
+rule teststartswith
+when
+	$m : RoutingMessage( routingValue str[startsWith] "R1" )
+then
+	list.add("Message starts with R1");
+end
+
+rule testsendswith
+when
+	$m : RoutingMessage( routingValue str[endsWith] "R2" )
+then
+	list.add("Message ends with R2");
+end
+
+rule testlength
+when
+	$m : RoutingMessage( routingValue str[length] 17 )
+then
+	list.add("Message length is 17");
+end
+
+rule testnotlength
+when
+	$m : RoutingMessage( routingValue not str[length] 17 )
+then
+	list.add("Message length is not 17");
+end
+
+rule testnotstartswith
+when
+	$m : RoutingMessage( routingValue not str[startsWith] "R2" )
+then
+	list.add("Message does not start with R2");
+end
+
+rule testnotendswith
+when
+	$m : RoutingMessage( routingValue not str[endsWith] "R1" )
+then
+	list.add("Message does not end with R1");
+end
+
+rule testmultiple
+when
+	$m : RoutingMessage( routingValue str[startsWith] "R1" && str[endsWith] "R2" && str[length] 17)
+then
+	list.add("Message starts with R1, ends with R2 and it's length is 17");
+end



More information about the jboss-svn-commits mailing list