[jboss-svn-commits] JBL Code SVN: r26082 - 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
Thu Apr 16 22:55:09 EDT 2009
Author: tirelli
Date: 2009-04-16 22:55:09 -0400 (Thu, 16 Apr 2009)
New Revision: 26082
Added:
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Move.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Win.java
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_InsertionOrder.drl
Modified:
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
Log:
Adding a test case to the code base
Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Move.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Move.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Move.java 2009-04-17 02:55:09 UTC (rev 26082)
@@ -0,0 +1,32 @@
+package org.drools;
+
+public class Move {
+ private int first;
+ private int second;
+
+
+ public Move(int first,
+ int second) {
+ super();
+ this.first = first;
+ this.second = second;
+ }
+
+ public int getFirst() {
+ return first;
+ }
+ public void setFirst(int first) {
+ this.first = first;
+ }
+ public int getSecond() {
+ return second;
+ }
+ public void setSecond(int second) {
+ this.second = second;
+ }
+
+ public String toString() {
+ return "Move("+first+","+second+")";
+ }
+
+}
Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Win.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Win.java (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Win.java 2009-04-17 02:55:09 UTC (rev 26082)
@@ -0,0 +1,42 @@
+package org.drools;
+
+public class Win {
+
+ private int value;
+
+ public Win(int value) {
+ super();
+ this.value = value;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ public void setValue(int value) {
+ this.value = value;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + value;
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if ( this == obj ) return true;
+ if ( obj == null ) return false;
+ if ( getClass() != obj.getClass() ) return false;
+ Win other = (Win) obj;
+ if ( value != other.value ) return false;
+ return true;
+ }
+
+ public String toString() {
+ return "Win("+value+")";
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2009-04-17 02:10:12 UTC (rev 26081)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java 2009-04-17 02:55:09 UTC (rev 26082)
@@ -61,6 +61,7 @@
import org.drools.KnowledgeBaseFactory;
import org.drools.Message;
import org.drools.MockPersistentSet;
+import org.drools.Move;
import org.drools.ObjectWithSet;
import org.drools.Order;
import org.drools.OrderItem;
@@ -84,6 +85,7 @@
import org.drools.StatefulSession;
import org.drools.StatelessSession;
import org.drools.TestParam;
+import org.drools.Win;
import org.drools.WorkingMemory;
import org.drools.Cheesery.Maturity;
import org.drools.audit.WorkingMemoryFileLogger;
@@ -6393,4 +6395,51 @@
results.get( 1 ) );
}
+
+ public void testInsertionOrder() {
+ KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
+ kbuilder.add( ResourceFactory.newClassPathResource( "test_InsertionOrder.drl",
+ getClass() ),
+ 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." );
+ }
+ KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();
+ kbase.addKnowledgePackages( kbuilder.getKnowledgePackages() );
+ StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
+ List<String> results = new ArrayList<String>();
+ ksession.setGlobal( "results",
+ results );
+ ksession.insert( new Move(1, 2) );
+ ksession.insert( new Move(2, 3) );
+
+ Win win2 = new Win( 2 );
+ Win win3 = new Win( 3 );
+
+ ksession.fireAllRules();
+ assertEquals( 2,
+ results.size() );
+ assertTrue( results.contains( win2 ) );
+ assertTrue( results.contains( win3 ) );
+
+ ksession = kbase.newStatefulKnowledgeSession();
+ results = new ArrayList<String>();
+ ksession.setGlobal( "results",
+ results );
+ // reverse the order of the inserts
+ ksession.insert( new Move(2, 3) );
+ ksession.insert( new Move(1, 2) );
+
+ ksession.fireAllRules();
+ assertEquals( 2,
+ results.size() );
+ assertTrue( results.contains( win2 ) );
+ assertTrue( results.contains( win3 ) );
+
+ }
+
}
Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_InsertionOrder.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_InsertionOrder.drl (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_InsertionOrder.drl 2009-04-17 02:55:09 UTC (rev 26082)
@@ -0,0 +1,13 @@
+package org.drools
+
+global java.util.List results;
+
+rule "direct"
+ when
+ m : Move(x : first, y : second)
+ not Win(value == y)
+ then
+ Win win = new Win(m.getSecond());
+ results.add( win );
+ insert( win );
+end
More information about the jboss-svn-commits
mailing list