1 17 package org.apache.servicemix.components.drools; 18 19 import javax.jbi.messaging.ExchangeStatus; 20 import javax.jbi.messaging.InOut; 21 import javax.jbi.messaging.NormalizedMessage; 22 import javax.xml.namespace.QName ; 23 24 import org.apache.servicemix.jbi.jaxp.StringSource; 25 import org.apache.servicemix.tck.TestSupport; 26 import org.apache.xbean.spring.context.ClassPathXmlApplicationContext; 27 import org.springframework.context.support.AbstractXmlApplicationContext; 28 import org.w3c.dom.Document ; 29 import org.w3c.dom.Element ; 30 import org.w3c.dom.Node ; 31 32 35 public class DroolsRouteTest extends TestSupport { 36 37 public void testFiringRules() throws Exception { 38 QName service = new QName ("http://servicemix.org/cheese/", "droolsRouter"); 39 40 InOut exchange = client.createInOutExchange(); 41 exchange.setService(service); 42 NormalizedMessage message = exchange.getInMessage(); 43 message.setContent(new StringSource(createMessageXmlText(1))); 44 client.sendSync(exchange); 45 assertEquals(ExchangeStatus.ACTIVE, exchange.getStatus()); 46 Node node = transformer.toDOMNode(exchange.getOutMessage().getContent()); 47 Element e = null; 48 if (node instanceof Element ) { 49 e = (Element ) node; 50 } else if (node instanceof Document ) { 51 e = ((Document ) node).getDocumentElement(); 52 } else { 53 fail("Node should be an Element or a Document"); 54 } 55 assertEquals("hello", e.getLocalName()); 56 client.done(exchange); 57 58 exchange = client.createInOutExchange(); 59 exchange.setService(service); 60 message = exchange.getInMessage(); 61 message.setContent(new StringSource(createMessageXmlText(2))); 62 client.sendSync(exchange); 63 assertEquals(ExchangeStatus.ACTIVE, exchange.getStatus()); 64 node = transformer.toDOMNode(exchange.getOutMessage().getContent()); 65 e = null; 66 if (node instanceof Element ) { 67 e = (Element ) node; 68 } else if (node instanceof Document ) { 69 e = ((Document ) node).getDocumentElement(); 70 } else { 71 fail("Node should be an Element or a Document"); 72 } 73 assertEquals("world", e.getLocalName()); 74 client.done(exchange); 75 } 76 77 protected AbstractXmlApplicationContext createBeanFactory() { 78 return new ClassPathXmlApplicationContext("org/apache/servicemix/components/drools/jbi-example-route.xml"); 79 } 80 } 81 | Popular Tags |