[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