[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