Author: davsclaus Date: Wed Feb 10 14:15:40 2010 New Revision: 908510 URL: http://svn.apache.org/viewvc?rev=908510&view=rev Log: Added more unit test to JMS
Added: camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyManualReplyTest.java (with props) camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyManualWithJMSReplyToTest.java (with props) Modified: camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestCustomReplyToTest.java camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestReplyTest.java Added: camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyManualReplyTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyManualReplyTest.java?rev=908510&view=auto ============================================================================== --- camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyManualReplyTest.java (added) +++ camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyManualReplyTest.java Wed Feb 10 14:15:40 2010 @@ -0,0 +1,94 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.component.jms; + +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; +import javax.jms.ConnectionFactory; +import javax.jms.Destination; +import javax.jms.JMSException; +import javax.jms.Message; +import javax.jms.Session; +import javax.jms.TextMessage; + +import org.apache.activemq.ActiveMQConnectionFactory; +import org.apache.activemq.command.ActiveMQQueue; +import org.apache.camel.Body; +import org.apache.camel.CamelContext; +import org.apache.camel.Consume; +import org.apache.camel.Header; +import org.apache.camel.test.junit4.CamelTestSupport; +import org.junit.Test; +import org.springframework.jms.core.JmsTemplate; +import org.springframework.jms.core.MessageCreator; + +import static org.apache.camel.component.jms.JmsComponent.jmsComponentClientAcknowledge; + +/** + * @version $Revision$ + */ +public class JmsRequestReplyManualReplyTest extends CamelTestSupport { + + private static volatile String tempName; + private CountDownLatch latch = new CountDownLatch(1); + private JmsTemplate jms; + + @Override + public boolean isUseRouteBuilder() { + return false; + } + + @Consume(uri = "activemq:queue:foo") + public void doSomething(@Header("JMSReplyTo") Destination jmsReplyTo, @Body String body) throws Exception { + assertEquals("Hello World", body); + + String endpointName = "activemq:" + jmsReplyTo.toString(); + endpointName = endpointName.replaceAll("//", ":"); + + tempName = endpointName; + latch.countDown(); + + template.sendBody(tempName, "Bye World"); + } + + @Test + public void testManualRequestReply() throws Exception { + // send using pure JMS API to set a custom JMSReplyTo + jms.send(new ActiveMQQueue("foo"), new MessageCreator() { + public Message createMessage(Session session) throws JMSException { + TextMessage msg = session.createTextMessage("Hello World"); + msg.setJMSReplyTo(new ActiveMQQueue("bar")); + return msg; + } + }); + + latch.await(5, TimeUnit.SECONDS); + String reply = consumer.receiveBody(tempName, 5000, String.class); + assertEquals("Bye World", reply); + } + + protected CamelContext createCamelContext() throws Exception { + CamelContext camelContext = super.createCamelContext(); + + ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("vm://localhost?broker.persistent=false"); + camelContext.addComponent("activemq", jmsComponentClientAcknowledge(connectionFactory)); + + jms = new JmsTemplate(connectionFactory); + return camelContext; + } + +} Propchange: camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyManualReplyTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyManualReplyTest.java ------------------------------------------------------------------------------ svn:keywords = Rev Date Added: camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyManualWithJMSReplyToTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyManualWithJMSReplyToTest.java?rev=908510&view=auto ============================================================================== --- camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyManualWithJMSReplyToTest.java (added) +++ camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyManualWithJMSReplyToTest.java Wed Feb 10 14:15:40 2010 @@ -0,0 +1,75 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.component.jms; + +import javax.jms.ConnectionFactory; +import javax.jms.Destination; + +import org.apache.activemq.ActiveMQConnectionFactory; +import org.apache.camel.Body; +import org.apache.camel.CamelContext; +import org.apache.camel.Consume; +import org.apache.camel.Exchange; +import org.apache.camel.Header; +import org.apache.camel.Processor; +import org.apache.camel.test.junit4.CamelTestSupport; +import org.junit.Test; + +import static org.apache.camel.component.jms.JmsComponent.jmsComponentClientAcknowledge; + +/** + * @version $Revision$ + */ +public class JmsRequestReplyManualWithJMSReplyToTest extends CamelTestSupport { + + @Override + public boolean isUseRouteBuilder() { + return false; + } + + @Consume(uri = "activemq:queue:foo") + public void doSomething(@Header("JMSReplyTo") Destination jmsReplyTo, @Body String body) throws Exception { + assertEquals("Hello World", body); + + String endpointName = "activemq:" + jmsReplyTo.toString(); + template.sendBody(endpointName, "Bye World"); + } + + @Test + public void testManualRequestReply() throws Exception { + // send an InOnly but force Camel to pass JMSReplyTo + template.send("activemq:queue:foo?preserveMessageQos=true", new Processor() { + public void process(Exchange exchange) throws Exception { + exchange.getIn().setBody("Hello World"); + exchange.getIn().setHeader("JMSReplyTo", "bar"); + } + }); + + String reply = consumer.receiveBody("activemq:queue:bar", 5000, String.class); + assertEquals("Bye World", reply); + } + + protected CamelContext createCamelContext() throws Exception { + CamelContext camelContext = super.createCamelContext(); + + ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("vm://localhost?broker.persistent=false"); + camelContext.addComponent("activemq", jmsComponentClientAcknowledge(connectionFactory)); + + return camelContext; + } + +} \ No newline at end of file Propchange: camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyManualWithJMSReplyToTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsRequestReplyManualWithJMSReplyToTest.java ------------------------------------------------------------------------------ svn:keywords = Rev Date Modified: camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestCustomReplyToTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestCustomReplyToTest.java?rev=908510&r1=908509&r2=908510&view=diff ============================================================================== --- camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestCustomReplyToTest.java (original) +++ camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestCustomReplyToTest.java Wed Feb 10 14:15:40 2010 @@ -85,7 +85,7 @@ public void run() { try { - LOG.debug("Wating for latch"); + LOG.debug("Waiting for latch"); latch.await(); // wait 1 sec after latch before sending he late replay Modified: camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestReplyTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestReplyTest.java?rev=908510&r1=908509&r2=908510&view=diff ============================================================================== --- camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestReplyTest.java (original) +++ camel/trunk/components/camel-jms/src/test/java/org/apache/camel/component/jms/JmsSimpleRequestReplyTest.java Wed Feb 10 14:15:40 2010 @@ -56,6 +56,17 @@ assertEquals(123, out.getOut().getHeader("foo")); } + @Test + public void testRequetReply2Messages() throws Exception { + MockEndpoint result = getMockEndpoint("mock:result"); + result.expectedMessageCount(2); + + template.requestBody("activemq:queue:hello", "Hello World"); + template.requestBody("activemq:queue:hello", "Gooday World"); + + result.assertIsSatisfied(); + } + protected CamelContext createCamelContext() throws Exception { CamelContext camelContext = super.createCamelContext();