[jboss-svn-commits] JBL Code SVN: r14914 - 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 Sep 6 15:38:43 EDT 2007


Author: tirelli
Date: 2007-09-06 15:38:43 -0400 (Thu, 06 Sep 2007)
New Revision: 14914

Added:
   labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_NestedAccessors.drl
Modified:
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Order.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
Log:
JBRULES-1172: adding integration tests for nested accessors

Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Order.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Order.java	2007-09-06 17:05:49 UTC (rev 14913)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Order.java	2007-09-06 19:38:43 UTC (rev 14914)
@@ -31,6 +31,8 @@
     private String customer;
     
     private Map items;
+    
+    private OrderStatus status;
 
     public Order() {
         this( 0, "Bob" );
@@ -114,4 +116,27 @@
         return "Order( number="+this.getNumber()+" customer=\""+this.getCustomer()+"\" )";
     }
 
+    public OrderStatus getStatus() {
+        if( status == null ) {
+            status = new OrderStatus();
+        }
+        return status;
+    }
+
+    public void setStatus(OrderStatus status) {
+        this.status = status;
+    }
+    
+    public static class OrderStatus {
+        private boolean active;
+
+        public boolean isActive() {
+            return active;
+        }
+
+        public void setActive(boolean active) {
+            this.active = active;
+        }
+    }
+
 }

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	2007-09-06 17:05:49 UTC (rev 14913)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java	2007-09-06 19:38:43 UTC (rev 14914)
@@ -4008,5 +4008,58 @@
         assertEquals( 2, 
                       list.size() );
     }
+    
+    public void testNestedAccessors() throws Exception {
+        final PackageBuilder builder = new PackageBuilder();
+        builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_NestedAccessors.drl" ) ) );
 
+        final RuleBase ruleBase = getRuleBase();
+        ruleBase.addPackage( builder.getPackage() );
+
+        final WorkingMemory workingMemory = ruleBase.newStatefulSession();
+
+        final List list = new ArrayList();
+        workingMemory.setGlobal( "results",
+                                 list );
+
+        final Order order1 = new Order( 11, "Bob" );
+        final OrderItem item11 = new OrderItem( order1, 1 );
+        final OrderItem item12 = new OrderItem( order1, 2 );
+        order1.addItem( item11 );
+        order1.addItem( item12 );
+        
+        workingMemory.insert( order1 );
+        workingMemory.insert( item11 );
+        workingMemory.insert( item12 );
+        
+        workingMemory.fireAllRules();
+        
+        assertEquals( 0,
+                      list.size() );
+        
+        final Order order2 = new Order( 12, "Mark" );
+        Order.OrderStatus status = new Order.OrderStatus();
+        status.setActive( true );
+        order2.setStatus( status );
+        final OrderItem item21 = new OrderItem( order2, 1 );
+        final OrderItem item22 = new OrderItem( order2, 2 );
+        order1.addItem( item21 );
+        order1.addItem( item22 );
+        
+        workingMemory.insert( order2 );
+        workingMemory.insert( item21 );
+        workingMemory.insert( item22 );
+        
+        workingMemory.fireAllRules();
+        
+        assertEquals( 2,
+                      list.size() );
+        assertSame( item21,
+                    list.get( 0 ) );
+        assertSame( item22,
+                    list.get( 1 ) );
+        
+        
+    }
+
 }
\ No newline at end of file

Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_NestedAccessors.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_NestedAccessors.drl	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_NestedAccessors.drl	2007-09-06 19:38:43 UTC (rev 14914)
@@ -0,0 +1,19 @@
+package org.drools;
+
+global java.util.List results;
+
+rule "Test nested accessors 1"
+    salience 10
+when
+    $oi : OrderItem( seq == 1, order.status.active == true )
+then
+    results.add( $oi );
+end
+
+rule "Test nested accessors 2"
+when
+    $oi : OrderItem( seq == 2, this.order.status.active == true )
+then
+    results.add( $oi );
+end
+




More information about the jboss-svn-commits mailing list