[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