[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