[jboss-svn-commits] JBL Code SVN: r17511 - in labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/java/org/jboss/soa/esb: actions and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Jan 2 20:09:24 EST 2008


Author: jeffdelong
Date: 2008-01-02 20:09:24 -0500 (Wed, 02 Jan 2008)
New Revision: 17511

Added:
   labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/java/org/jboss/soa/esb/actions/
   labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/java/org/jboss/soa/esb/actions/BusinessRulesProcessorUnitTest.java
   labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/java/org/jboss/soa/esb/actions/BusinessRulesProcessorUnitTest.xml
Log:


Added: labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/java/org/jboss/soa/esb/actions/BusinessRulesProcessorUnitTest.java
===================================================================
--- labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/java/org/jboss/soa/esb/actions/BusinessRulesProcessorUnitTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/java/org/jboss/soa/esb/actions/BusinessRulesProcessorUnitTest.java	2008-01-03 01:09:24 UTC (rev 17511)
@@ -0,0 +1,722 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.actions;
+
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.net.URI;
+
+import org.jboss.internal.soa.esb.couriers.MockCourier;
+import org.jboss.internal.soa.esb.couriers.MockCourierFactory;
+import org.jboss.internal.soa.esb.services.registry.MockRegistry;
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.message.format.MessageType;
+import org.jboss.soa.esb.testutils.FileUtil;
+import org.jboss.soa.esb.util.ClassUtil;
+
+import org.jboss.internal.soa.esb.services.rules.RuleServiceException;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.actions.BusinessRulesProcessor;
+import org.jboss.soa.esb.services.registry.RegistryException;
+
+import org.jboss.soa.esb.services.rules.Approve;
+import org.jboss.soa.esb.services.rules.Customer;
+import org.jboss.soa.esb.services.rules.Driver;
+import org.jboss.soa.esb.services.rules.Order;
+import org.jboss.soa.esb.services.rules.Policy;
+
+import org.apache.log4j.Logger;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import junit.framework.JUnit4TestAdapter;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+
+/**
+ * 
+ * @author jdelong at redhat.com
+ *
+ */
+public class BusinessRulesProcessorUnitTest
+{
+	static Logger _logger = Logger.getLogger(BusinessRulesProcessorUnitTest.class);
+
+	
+	// messages for the tests
+	Message message;
+	Message message1;
+	Message message2;
+	Message message3;
+	Message message4;
+	Message message5;
+	Message message6;
+	Message message7;
+
+	// facts
+	Order order;	
+	Order order1;
+	Order order2;
+	Order order3;
+	Order order4;
+	Order order5;
+	Order order6;
+	Order order7;
+	
+	Customer customer = new Customer( "mark", 0 );
+
+	
+    List<Order> orders = new ArrayList();
+		
+    Driver driver = new Driver();
+    Policy policy = new Policy();
+
+	ConfigTree confTree;
+
+	
+    private static EPR epr;   
+    private static EPR eprS;   
+    private static EPR epr1;
+    private static EPR epr1S;
+    private static EPR epr2;
+    private static EPR epr2S;
+    private static EPR epr3;
+    private static EPR epr3S;
+    private static EPR epr4;
+    private static EPR epr4S;
+    private static EPR epr5;
+    private static EPR epr5S;
+    private static EPR epr6;
+//    private static EPR epr7;
+    
+    private static MockCourier courier;
+    private static MockCourier courierS;
+    private static MockCourier courier1;
+    private static MockCourier courier1S;
+    private static MockCourier courier2;
+    private static MockCourier courier2S;
+    private static MockCourier courier3;
+    private static MockCourier courier3S;
+    private static MockCourier courier4;
+    private static MockCourier courier4S;
+    private static MockCourier courier5;
+    private static MockCourier courier5S;
+    private static MockCourier courier6;
+//    private static MockCourier courier7;
+    
+    private static ConfigTree[] actions;
+	  
+    
+    @BeforeClass
+    public static void setUpEPRsandCouriers() throws Exception {
+        MockCourierFactory.install();
+        MockRegistry.install();
+        // epr and courier for drl tests
+    	epr = new EPR(new URI("orderDiscount"));
+        courier = new MockCourier(true);
+        MockRegistry.register("test", "OrderDiscountRuleService", epr, courier);
+    	eprS = new EPR(new URI("orderDiscountStateful"));
+        courierS = new MockCourier(true);
+        MockRegistry.register("test", "OrderDiscountRuleServiceStateful", eprS, courierS);
+        
+		
+        // epr and courier for drl and multiple orders tests
+    	epr1 = new EPR(new URI("orderDiscountMultiple"));
+        courier1 = new MockCourier(true);
+        MockRegistry.register("test", "OrderDiscountMultipleRuleService", epr1, courier1);
+       	epr1S = new EPR(new URI("orderDiscountMultiple"));
+        courier1S = new MockCourier(true);
+        MockRegistry.register("test", "OrderDiscountMultipleRuleServiceStateful", epr1S, courier1S);
+		
+ 
+	    // epr and courier for drl and order collection tests
+	   	epr2 = new EPR(new URI("orderDiscountCollections"));
+        courier2 = new MockCourier(true);
+        MockRegistry.register("test", "OrderDiscountCollectionsRuleService", epr2, courier2);
+	   	epr2S = new EPR(new URI("orderDiscountCollectionsStateful"));
+        courier2S = new MockCourier(true);
+        MockRegistry.register("test", "OrderDiscountCollectionsRuleServiceStateful", epr2S, courier2S);
+ 
+  
+	    // epr and courier for decision table, dsl, and ruleAgent tests
+	   	epr3 = new EPR(new URI("policyPricing"));
+        courier3 = new MockCourier(true);
+        MockRegistry.register("test", "PolicyPricingRuleService", epr3, courier3);
+	   	epr3S = new EPR(new URI("policyPricingStateful"));
+        courier3S = new MockCourier(true);
+        MockRegistry.register("test", "PolicyPricingRuleServiceStateful", epr3S, courier3S);
+
+	   	epr4 = new EPR(new URI("policyApproval"));
+        courier4 = new MockCourier(true);
+        MockRegistry.register("test", "PolicyApprovalRuleService", epr4, courier4);
+	   	epr4S = new EPR(new URI("policyApprovalStateful"));
+        courier4S = new MockCourier(true);
+        MockRegistry.register("test", "PolicyApprovalRuleServiceStateful", epr4S, courier4S);
+
+ 
+	   	epr5 = new EPR(new URI("ruleAgentPolicy"));
+        courier5 = new MockCourier(true);
+        MockRegistry.register("test", "RuleAgenttPolicyService", epr5, courier5);
+	   	epr5S = new EPR(new URI("ruleAgentPolicyStateful"));
+        courier5S = new MockCourier(true);
+        MockRegistry.register("test", "RuleAgentPolicyStateful", epr5S, courier5S);
+
+        
+       	epr6 = new EPR(new URI("statefulContinuation"));
+        courier6 = new MockCourier(true);
+        MockRegistry.register("test", "OrderDiscountServiceStatefulContinuation", epr6, courier6);
+
+        
+        InputStream in = ClassUtil.getResourceAsStream("BusinessRulesProcessorUnitTest.xml", BusinessRulesProcessorUnitTest.class);
+        String xml = FileUtil.readStream(in);
+        actions = ConfigTree.fromXml(xml).getChildren("action");
+     	
+        
+        
+    }
+    
+    
+    @Before
+    public void setupMessagesAndFacts() {
+    	
+    	// message and facts for drl tests
+        message = MessageFactory.getInstance().getMessage(MessageType.JAVA_SERIALIZED);
+		order = new Order();
+		order.setOrderId(0);
+		order.setQuantity(20);
+	    order.setUnitPrice(new Float("20.0"));
+		message.getBody().add("Order", order);
+
+		// message and facts for drl and multiple orders tests
+	    message1 = MessageFactory.getInstance().getMessage(MessageType.JAVA_SERIALIZED);
+		order1 = new Order();
+		order1.setOrderId(1);
+	    order1.setQuantity(20);
+	    order1.setUnitPrice(new Float("50.0"));
+		message1.getBody().add("Order1", order1);
+	    order2 = new Order();
+		order2.setOrderId(2);
+	    order2.setQuantity(5);
+	    order2.setUnitPrice(new Float("50.0"));
+		message1.getBody().add("Order2", order2);
+	
+		// message and facts for drl and collections tests
+	    message2 = MessageFactory.getInstance().getMessage(MessageType.JAVA_SERIALIZED);
+	    order3 = new Order();
+		order3.setOrderId(3);
+	    order3.setQuantity(9);
+	    order3.setUnitPrice(new Float("50.0"));
+
+	    order4 = new Order();
+		order4.setOrderId(4);
+	    order4.setQuantity(25);
+	    order4.setUnitPrice(new Float("50.0"));
+
+	    orders.add(order1);
+	    orders.add(order2);
+	    orders.add(order3);
+	    orders.add(order4);
+	    		    		    
+		message2.getBody().add("Orders", orders);
+
+	
+	    // message and facts for decision table, dsl, and ruleAgent tests
+		message3 = MessageFactory.getInstance().getMessage(MessageType.JAVA_SERIALIZED);
+		driver = new Driver();
+		policy = new Policy();
+		driver.setAge(30);
+		policy.setDriver(driver);
+		message3.getBody().add("Driver", driver);
+		message3.getBody().add("Policy", policy);
+
+	    // message and facts for stateful continuation tests
+	    // new message with just customer
+		message4 = MessageFactory.getInstance().getMessage(MessageType.JAVA_SERIALIZED);
+		message4.getBody().add("Customer", customer);
+		message4.getProperties().setProperty("dispose", false);
+
+		//new message and order
+		message5 = MessageFactory.getInstance().getMessage(MessageType.JAVA_SERIALIZED);
+		order5 = new Order();
+		order5.setOrderId(5);
+	    order5.setQuantity(5);
+	    order5.setUnitPrice(new Float("50.0"));
+	    order5.setTotalPrice(order5.calculateTotalPrice());
+	    order5.setCustomer(customer);
+		message5.getBody().add("Order", order5);
+		message5.getProperties().setProperty("dispose", false);
+		message5.getProperties().setProperty("continue", true);
+
+		    
+		message6 = MessageFactory.getInstance().getMessage(MessageType.JAVA_SERIALIZED);
+	    order6 = new Order();
+		order6.setOrderId(6);
+	    order6.setQuantity(10);
+	    order6.setUnitPrice(new Float("80.0"));
+	    order6.setTotalPrice(order6.calculateTotalPrice());
+	    order6.setCustomer(customer);
+		message6.getBody().add("Order", order6);
+		message6.getProperties().setProperty("dispose", false);
+		message6.getProperties().setProperty("continue", true);
+
+		message7 = MessageFactory.getInstance().getMessage(MessageType.JAVA_SERIALIZED);
+	    order7 = new Order();
+		order7.setOrderId(7);
+	    order7.setQuantity(5);
+	    order7.setUnitPrice(new Float("60.0"));
+	    order7.setTotalPrice(order7.calculateTotalPrice());
+	    order7.setCustomer(customer);
+		message7.getBody().add("Order", order7);
+		message7.getProperties().setProperty("dispose", true);
+		message7.getProperties().setProperty("continue", true);
+
+
+    }
+     
+	
+	@Test
+	public void drlStateless() 
+	{
+		try {
+			BusinessRulesProcessor brp = new BusinessRulesProcessor(actions[0]);
+            brp.process(message);
+            		
+			assertEquals(order.getDiscount(),10.0);
+            assertEquals("10%",message.getBody().get("DiscountObject0"));
+            System.out.println("test BRP drlStateless passed");
+           
+		} catch (ConfigurationException ce) {
+			System.out.println("Caught ConfigurationException" + ce.getMessage());
+	        assertTrue(false);
+		} catch (RegistryException re) {
+			System.out.println("Caught RegistryException" + re.getMessage());
+	        assertTrue(false);
+	    } catch (RuleServiceException rse) {
+			System.out.println("Caught RuleServiceException" + rse.getMessage());
+	        assertTrue(false);
+		} catch (ActionProcessingException ape) {
+			System.out.println("Caught ActionProcessingException" + ape.getMessage());
+	        assertTrue(false);
+	    }
+	}
+	
+
+	@Test
+	public void drlStateful()
+	{
+		try {
+			BusinessRulesProcessor brp = new BusinessRulesProcessor(actions[1]);
+			message.getProperties().setProperty("dispose", true);
+            brp.process(message);
+            		
+            assertEquals(order.getDiscount(),10.0);
+            assertEquals("10%",message.getBody().get("DiscountObject0"));
+            Order orderFromMessage = (Order) message.getBody().get("Order");
+            assertEquals(orderFromMessage.getDiscount(),10.0);
+            System.out.println("test BRP drlStateful passed");
+      
+                                 
+		} catch (ConfigurationException ce) {
+			System.out.println("Caught ConfigurationException" + ce.getMessage());
+	          assertTrue(false);
+		} catch (RegistryException re) {
+			System.out.println("Caught RegistryException" + re.getMessage());
+	        assertTrue(false);
+	    } catch (RuleServiceException rse) {
+			System.out.println("Caught RuleServiceException" + rse.getMessage());
+	        assertTrue(false);
+		} catch (ActionProcessingException ape) {
+			System.out.println("Caught ActionProcessingException" + ape.getMessage());
+	        assertTrue(false);
+	    }
+	}
+		
+	@Test
+	public void drlStatelessMultipleObjects()
+	{                                    
+		try {
+			BusinessRulesProcessor brp = new BusinessRulesProcessor(actions[2]);
+            brp.process(message1);
+            		
+            assertEquals(order1.getDiscount(),10.0);
+            assertEquals(order2.getDiscount(),0.0);
+            assertEquals("10%",message1.getBody().get("DiscountObject1"));
+            assertEquals("0%",message1.getBody().get("DiscountObject2"));
+            Order order1FromMessage = (Order) message1.getBody().get("Order1");
+            assertEquals(order1FromMessage.getDiscount(),10.0);
+            Order order2FromMessage = (Order) message1.getBody().get("Order2");
+            assertEquals(order2FromMessage.getDiscount(),0.0);
+            System.out.println("test BRP drlStatelessMultipleObjects passed");
+      
+                                     
+    		} catch (ConfigurationException ce) {
+    			System.out.println("Caught ConfigurationException" + ce.getMessage());
+    	          assertTrue(false);
+     		} catch (RegistryException re) {
+    			System.out.println("Caught RegistryException" + re.getMessage());
+    	        assertTrue(false);
+    	    } catch (RuleServiceException rse) {
+    			System.out.println("Caught RuleServiceException" + rse.getMessage());
+    	        assertTrue(false);
+    		} catch (ActionProcessingException ape) {
+    			System.out.println("Caught ActionProcessingException" + ape.getMessage());
+    	        assertTrue(false);
+    	    }
+	}
+	
+	
+	@Test
+	public void drlStatefulMultipleObjects()
+	{
+		try {
+			BusinessRulesProcessor brp = new BusinessRulesProcessor(actions[3]);
+            brp.process(message1);
+            		
+            assertEquals(order1.getDiscount(),10.0);
+            assertEquals(order2.getDiscount(),0.0);
+            assertEquals("10%",message1.getBody().get("DiscountObject1"));
+            assertEquals("0%",message1.getBody().get("DiscountObject2"));
+            Order order1FromMessage = (Order) message1.getBody().get("Order1");
+            assertEquals(order1FromMessage.getDiscount(),10.0);
+            Order order2FromMessage = (Order) message1.getBody().get("Order2");
+            assertEquals(order2FromMessage.getDiscount(),0.0);
+            System.out.println("test BRP drlStatefulMultipleObjects passed");     
+                                     
+    		} catch (ConfigurationException ce) {
+    			System.out.println("Caught ConfigurationException" + ce.getMessage());
+    	          assertTrue(false);
+     		} catch (RegistryException re) {
+    			System.out.println("Caught RegistryException" + re.getMessage());
+    	        assertTrue(false);
+    	    } catch (RuleServiceException rse) {
+    			System.out.println("Caught RuleServiceException" + rse.getMessage());
+    	        assertTrue(false);
+    		} catch (ActionProcessingException ape) {
+    			System.out.println("Caught ActionProcessingException" + ape.getMessage());
+    	        assertTrue(false);
+    	    }
+                      
+	}
+	
+
+	@Test
+	public void drlStatelessCollection()
+	{
+		try {
+			BusinessRulesProcessor brp = new BusinessRulesProcessor(actions[4]);
+            brp.process(message2);
+            		
+            assertEquals("10%",message2.getBody().get("DiscountObject1"));
+            assertEquals("0%",message2.getBody().get("DiscountObject2"));
+            assertEquals("0%",message2.getBody().get("DiscountObject3"));
+            assertEquals("10%",message2.getBody().get("DiscountObject4"));
+            // use arrays because we can control which element is where
+            // making it easy to compare in this test case
+            Order[] updatedOrders = (Order[]) message2.getBody().get("UpdatedOrders");
+            Order order1FromMessage = (Order) updatedOrders[0];
+            Order order2FromMessage = (Order) updatedOrders[1];
+            Order order3FromMessage = (Order) updatedOrders[2];
+            Order order4FromMessage = (Order) updatedOrders[3];
+
+            assertEquals(order1FromMessage.getDiscount(),10.0);
+            assertEquals(order2FromMessage.getDiscount(),0.0);
+            assertEquals(order3FromMessage.getDiscount(),0.0);
+            assertEquals(order4FromMessage.getDiscount(),10.0);
+            System.out.println("test BRP drlStatelessCollections passed");
+    
+                                     
+    		} catch (ConfigurationException ce) {
+    			System.out.println("Caught ConfigurationException" + ce.getMessage());
+    	          assertTrue(false);
+     		} catch (RegistryException re) {
+    			System.out.println("Caught RegistryException" + re.getMessage());
+    	        assertTrue(false);
+    	    } catch (RuleServiceException rse) {
+    			System.out.println("Caught RuleServiceException" + rse.getMessage());
+    	        assertTrue(false);
+    		} catch (ActionProcessingException ape) {
+    			System.out.println("Caught ActionProcessingException" + ape.getMessage());
+    	        assertTrue(false);
+    	    }
+  
+	}
+	
+	
+	@Test
+	public void drlStatelfulCollection()
+	{
+		try {
+			BusinessRulesProcessor brp = new BusinessRulesProcessor(actions[5]);
+            brp.process(message2);
+            		
+            assertEquals("10%",message2.getBody().get("DiscountObject1"));
+            assertEquals("0%",message2.getBody().get("DiscountObject2"));
+            assertEquals("0%",message2.getBody().get("DiscountObject3"));
+            assertEquals("10%",message2.getBody().get("DiscountObject4"));
+            // use arrays because we can control which element is where
+            // making it easy to compare in this test case
+            Order[] updatedOrders = (Order[]) message2.getBody().get("UpdatedOrders");
+            Order order1FromMessage = (Order) updatedOrders[0];
+            Order order2FromMessage = (Order) updatedOrders[1];
+            Order order3FromMessage = (Order) updatedOrders[2];
+            Order order4FromMessage = (Order) updatedOrders[3];
+
+            assertEquals(order1FromMessage.getDiscount(),10.0);
+            assertEquals(order2FromMessage.getDiscount(),0.0);
+            assertEquals(order3FromMessage.getDiscount(),0.0);
+            assertEquals(order4FromMessage.getDiscount(),10.0);
+            System.out.println("test BRP drlStatelessCollections passed");
+    
+                                     
+    		} catch (ConfigurationException ce) {
+    			System.out.println("Caught ConfigurationException" + ce.getMessage());
+    	          assertTrue(false);
+     		} catch (RegistryException re) {
+    			System.out.println("Caught RegistryException" + re.getMessage());
+    	        assertTrue(false);
+    	    } catch (RuleServiceException rse) {
+    			System.out.println("Caught RuleServiceException" + rse.getMessage());
+    	        assertTrue(false);
+    		} catch (ActionProcessingException ape) {
+    			System.out.println("Caught ActionProcessingException" + ape.getMessage());
+    	        assertTrue(false);
+    	    }
+  
+	}
+
+	
+	@Test
+	public void decisionTableStateless()
+	{
+		try {
+			BusinessRulesProcessor brp = new BusinessRulesProcessor(actions[6]);
+            brp.process(message3);
+            
+            Policy policyFromMessage = (Policy) message3.getBody().get("Policy");
+            assertEquals(policyFromMessage.getBasePrice(),120);
+            System.out.println("test BRP decisionTableStateless passed");
+
+           
+  		} catch (ConfigurationException ce) {
+			System.out.println("Caught ConfigurationException" + ce.getMessage());
+	          assertTrue(false);
+ 		} catch (RegistryException re) {
+			System.out.println("Caught RegistryException" + re.getMessage());
+	        assertTrue(false);
+	    } catch (RuleServiceException rse) {
+			System.out.println("Caught RuleServiceException" + rse.getMessage());
+	        assertTrue(false);
+		} catch (ActionProcessingException ape) {
+			System.out.println("Caught ActionProcessingException" + ape.getMessage());
+	        assertTrue(false);
+	    }
+	}
+	
+	@Test
+	public void decisionTableStateful()
+	{
+		try {
+			BusinessRulesProcessor brp = new BusinessRulesProcessor(actions[7]);
+            brp.process(message3);
+            
+            Policy policyFromMessage = (Policy) message3.getBody().get("Policy");
+            assertEquals(policyFromMessage.getBasePrice(),120);
+            System.out.println("test BRP decisionTableStateful passed");
+
+           
+  		} catch (ConfigurationException ce) {
+			System.out.println("Caught ConfigurationException" + ce.getMessage());
+	          assertTrue(false);
+ 		} catch (RegistryException re) {
+			System.out.println("Caught RegistryException" + re.getMessage());
+	        assertTrue(false);
+	    } catch (RuleServiceException rse) {
+			System.out.println("Caught RuleServiceException" + rse.getMessage());
+	        assertTrue(false);
+		} catch (ActionProcessingException ape) {
+			System.out.println("Caught ActionProcessingException" + ape.getMessage());
+	        assertTrue(false);
+	    }
+	}
+	
+	
+	@Test
+	public void dslStateless()
+	{
+		try {
+			BusinessRulesProcessor brp = new BusinessRulesProcessor(actions[8]);
+            brp.process(message3);
+            
+            Approve approveFromMessage = (Approve) message3.getBody().get("Approve");
+            assertEquals(approveFromMessage.getReason(), "Driver is safe and mature.");
+            System.out.println("test BRP dslStateless passed");
+
+           
+  		} catch (ConfigurationException ce) {
+			System.out.println("Caught ConfigurationException" + ce.getMessage());
+	          assertTrue(false);
+ 		} catch (RegistryException re) {
+			System.out.println("Caught RegistryException" + re.getMessage());
+	        assertTrue(false);
+	    } catch (RuleServiceException rse) {
+			System.out.println("Caught RuleServiceException" + rse.getMessage());
+	        assertTrue(false);
+		} catch (ActionProcessingException ape) {
+			System.out.println("Caught ActionProcessingException" + ape.getMessage());
+	        assertTrue(false);
+	    }
+	}	
+  
+	
+	@Test
+	public void dslStateful()
+	{
+		try {
+			BusinessRulesProcessor brp = new BusinessRulesProcessor(actions[9]);
+            brp.process(message3);
+            
+            Approve approveFromMessage = (Approve) message3.getBody().get("Approve");
+            assertEquals(approveFromMessage.getReason(), "Driver is safe and mature.");
+            System.out.println("test BRP dslStateful passed");
+
+	           
+	  		} catch (ConfigurationException ce) {
+				System.out.println("Caught ConfigurationException" + ce.getMessage());
+		          assertTrue(false);
+	 		} catch (RegistryException re) {
+				System.out.println("Caught RegistryException" + re.getMessage());
+		        assertTrue(false);
+		    } catch (RuleServiceException rse) {
+				System.out.println("Caught RuleServiceException" + rse.getMessage());
+		        assertTrue(false);
+			} catch (ActionProcessingException ape) {
+				System.out.println("Caught ActionProcessingException" + ape.getMessage());
+		        assertTrue(false);
+		    }
+		}	
+	
+	@Test
+	public void ruleAgentStateless()
+	{
+		try {
+			BusinessRulesProcessor brp = new BusinessRulesProcessor(actions[10]);
+            brp.process(message3);
+            
+            Policy policyFromMessage = (Policy) message3.getBody().get("Policy");
+            assertEquals(policyFromMessage.getBasePrice(),120);
+            System.out.println("test BRP ruleAgentStateless passed");
+
+	           
+	  		} catch (ConfigurationException ce) {
+				System.out.println("Caught ConfigurationException" + ce.getMessage());
+		          assertTrue(false);
+	 		} catch (RegistryException re) {
+				System.out.println("Caught RegistryException" + re.getMessage());
+		        assertTrue(false);
+		    } catch (RuleServiceException rse) {
+				System.out.println("Caught RuleServiceException" + rse.getMessage());
+		        assertTrue(false);
+			} catch (ActionProcessingException ape) {
+				System.out.println("Caught ActionProcessingException" + ape.getMessage());
+		        assertTrue(false);
+		    }
+		}	
+	
+	
+	@Test
+	public void ruleAgentStateful()
+	{
+		try {
+			BusinessRulesProcessor brp = new BusinessRulesProcessor(actions[11]);
+            brp.process(message3);
+            
+            Policy policyFromMessage = (Policy) message3.getBody().get("Policy");
+            assertEquals(policyFromMessage.getBasePrice(),120);
+            System.out.println("test BRP ruleAgentStateful passed");
+
+	           
+	  		} catch (ConfigurationException ce) {
+				System.out.println("Caught ConfigurationException" + ce.getMessage());
+		          assertTrue(false);
+	 		} catch (RegistryException re) {
+				System.out.println("Caught RegistryException" + re.getMessage());
+		        assertTrue(false);
+		    } catch (RuleServiceException rse) {
+				System.out.println("Caught RuleServiceException" + rse.getMessage());
+		        assertTrue(false);
+			} catch (ActionProcessingException ape) {
+				System.out.println("Caught ActionProcessingException" + ape.getMessage());
+		        assertTrue(false);
+		    }
+		}
+	
+
+	@Test
+	public void drlStatefulOverTime()
+	{
+		try {
+			BusinessRulesProcessor brp = new BusinessRulesProcessor(actions[12]);
+            brp.process(message4);
+            
+            brp.process(message5);           
+            Customer customerFromMessage5 = (Customer) message5.getBody().get("Customer");
+            assertNull(customerFromMessage5);
+            
+            brp.process(message6);
+            Customer customerFromMessage6 = (Customer) message6.getBody().get("Customer");
+    		assertEquals(customerFromMessage6.getDiscount(), 10);
+
+            brp.process(message7);
+            Customer customerFromMessage7 = (Customer) message7.getBody().get("Customer");
+            assertEquals(customerFromMessage7.getDiscount(), 10);
+            
+            System.out.println("test BRP drlStateful with continuation passed");
+	           
+	  		} catch (ConfigurationException ce) {
+				System.out.println("Caught ConfigurationException" + ce.getMessage());
+		          assertTrue(false);
+	 		} catch (RegistryException re) {
+				System.out.println("Caught RegistryException" + re.getMessage());
+		        assertTrue(false);
+		    } catch (RuleServiceException rse) {
+				System.out.println("Caught RuleServiceException" + rse.getMessage());
+		        assertTrue(false);
+			} catch (ActionProcessingException ape) {
+				System.out.println("Caught ActionProcessingException" + ape.getMessage());
+		        assertTrue(false);
+		    }
+	}       	
+
+	
+
+	public static junit.framework.Test suite() {
+		return new JUnit4TestAdapter(BusinessRulesProcessorUnitTest.class);
+	}
+
+}

Added: labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/java/org/jboss/soa/esb/actions/BusinessRulesProcessorUnitTest.xml
===================================================================
--- labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/java/org/jboss/soa/esb/actions/BusinessRulesProcessorUnitTest.xml	                        (rev 0)
+++ labs/jbossesb/workspace/jdelong/ruleservice/JBESB_4_2_1_GA_CP/product/services/jbrules/src/test/java/org/jboss/soa/esb/actions/BusinessRulesProcessorUnitTest.xml	2008-01-03 01:09:24 UTC (rev 17511)
@@ -0,0 +1,124 @@
+<testActions>
+	<action class="org.jboss.soa.esb.actions.BusinessRulesProcessor" name="OrderDiscountRuleService"
+		ruleSet="drl/OrderDiscount.drl"
+		ruleReload="false"  >
+		
+		<object-path esb="body.Order" />
+		
+	</action>
+		
+	<action class="org.jboss.soa.esb.actions.BusinessRulesProcessor" name="OrderDiscountRuleServiceStateful"
+		ruleSet="drl/OrderDiscount.drl"
+		ruleReload="false" 
+		stateful="true" >
+			
+		<object-path esb="body.Order" />
+		
+	</action>
+
+	<action class="org.jboss.soa.esb.actions.BusinessRulesProcessor" name="OrderDiscountMultipleRuleService"
+		ruleSet="drl/OrderDiscount.drl"
+		ruleReload="false" >
+		
+		<object-path esb="body.Order1" />
+		<object-path esb="body.Order2" />
+	</action>
+	
+	<action class="org.jboss.soa.esb.actions.BusinessRulesProcessor" name="OrderDiscountMultipleRuleServiceStateful"
+		ruleSet="drl/OrderDiscount.drl"
+		ruleReload="false"
+		stateful="true" >
+		
+		<object-path esb="body.Order1" />
+		<object-path esb="body.Order2" />
+	</action>
+
+	<action class="org.jboss.soa.esb.actions.BusinessRulesProcessor" name="OrderDiscountCollectionsRuleService"
+		ruleSet="drl/OrderDiscountWithCollections.drl"
+		ruleReload="false" >
+		
+		<object-path esb="body.Orders" />
+	
+	</action>
+
+	<action class="org.jboss.soa.esb.actions.BusinessRulesProcessor" name="OrderDiscountCollectionsRuleServiceStateful"
+		ruleSet="drl/OrderDiscountWithCollections.drl"
+		ruleReload="false"
+		stateful="true" >
+		
+		<object-path esb="body.Orders" />
+	
+	</action>
+		
+	<action class="org.jboss.soa.esb.actions.BusinessRulesProcessor" name="PolicyPricingRuleService"
+		decisionTable="decisionTable/PolicyPricing.xls"
+		ruleReload="false" >
+		
+		<object-path esb="body.Driver" />
+		<object-path esb="body.Policy" />
+		
+	</action>
+	
+	<action class="org.jboss.soa.esb.actions.BusinessRulesProcessor" name="PolicyPricingRuleServiceStateful"
+		decisionTable="decisionTable/PolicyPricing.xls"
+		ruleReload="false"
+		stateful="true" >
+		
+		<object-path esb="body.Driver" />
+		<object-path esb="body.Policy" />
+		
+	</action>
+	
+	<action class="org.jboss.soa.esb.actions.BusinessRulesProcessor" name="PolicyApprovalRuleService"
+		ruleSet="dsl/approval.dslr"
+		ruleLanguage="dsl/acme.dsl"
+		ruleReload="false" >
+		
+		<object-path esb="body.Driver" />
+		<object-path esb="body.Policy" />
+		
+	</action>
+
+	<action class="org.jboss.soa.esb.actions.BusinessRulesProcessor" name="PolicyApprovalRuleServiceStateful"
+		ruleSet="dsl/approval.dslr"
+		ruleLanguage="dsl/acme.dsl"
+		ruleReload="false"
+		stateful="true" >
+		
+		<object-path esb="body.Driver" />
+		<object-path esb="body.Policy" />
+		
+	</action>
+	
+
+	<action class="org.jboss.soa.esb.actions.BusinessRulesProcessor" name="RuleAgentPolicyService"
+		ruleAgentProperties="ruleAgent/brmsdeployedrules.properties"
+			stateful="true" >
+	
+		<object-path esb="body.Driver" />
+		<object-path esb="body.Policy" />
+		
+	</action>	
+	
+		
+	<action class="org.jboss.soa.esb.actions.BusinessRulesProcessor" name="RuleAgentPolicyServiceStateful"
+		ruleAgentProperties="ruleAgent/brmsdeployedrules.properties"
+			stateful="true" >
+	
+		<object-path esb="body.Driver" />
+		<object-path esb="body.Policy" />
+		
+	</action>	
+	
+	
+	<action class="org.jboss.soa.esb.actions.BusinessRulesProcessor" name="OrderDiscountServiceStatefulContinuation"
+		ruleSet="drl/OrderDiscountOnMultipleOrders.drl"
+		ruleReload="false"
+		stateful="true" >
+		
+		<object-path esb="body.Customer" />
+		<object-path esb="body.Order" />
+	</action>
+	
+	
+</testActions>




More information about the jboss-svn-commits mailing list