Skip to content

Instantly share code, notes, and snippets.

@stibi
Created July 18, 2013 11:34
Show Gist options
  • Select an option

  • Save stibi/6028633 to your computer and use it in GitHub Desktop.

Select an option

Save stibi/6028633 to your computer and use it in GitHub Desktop.
import org.apache.activemq.camel.component.ActiveMQComponent;
import org.apache.camel.Produce;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.test.junit4.CamelTestSupport;
import org.apache.camel.util.jndi.JndiContext;
import org.junit.Test;
import javax.naming.Context;
/**
* @author stibomar
* @since 18/07/13 11:57
*/
public class JmsQueueTests extends CamelTestSupport{
@Produce(uri = "direct:start")
protected ProducerTemplate template;
protected String getUriWithTransferedExchangeToJmsEndpoint() {
return "jms:queue:transfered?transferExchange=true";
}
protected String getUriWithoutTransferedExchangeToJmsEndpoint() {
return "jms:queue:notTransfered?transferExchange=false";
}
@Test
public void exchangeBodyAndHeaderArePassedInTransferedExchangeToJmsTest() throws Exception {
MockEndpoint mock = getMockEndpoint("mock:result");
mock.expectedBodiesReceived("Hello world!");
mock.expectedHeaderReceived("foo", "bar");
mock.expectedMessageCount(1);
template.sendBodyAndHeader("direct:transfered", "Hello world!", "foo", "bar");
assertMockEndpointsSatisfied();
}
@Test
public void exchangeBodyAndPropertyArePassedInTransferedExchangeToJmsTest() throws InterruptedException {
MockEndpoint mock = getMockEndpoint("mock:result");
mock.expectedBodiesReceived("Hello world!");
mock.expectedPropertyReceived("foo", "bar");
mock.expectedMessageCount(1);
template.sendBodyAndProperty("direct:transfered", "Hello world!", "foo", "bar");
assertMockEndpointsSatisfied();
}
@Test
public void exchangeHeaderIsNotPassedToJmsBecauseExchangeIsNotTransfered() throws InterruptedException {
MockEndpoint mock = getMockEndpoint("mock:result");
mock.expectedBodiesReceived("Hello to not transfered Exchange!");
mock.expectedHeaderReceived("foo", "bar");
mock.expectedMessageCount(1);
template.sendBodyAndHeader("direct:nottransfered", "Hello to not transfered Exchange!", "foo", "bar");
assertMockEndpointsSatisfied();
}
@Test
public void exchangePropertyIsNotPassedToJmsBecauseExchangeIsNotTransfered() {
}
@Override
protected RouteBuilder createRouteBuilder() {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
// transfered exchange routes
from("direct:transfered").to(getUriWithTransferedExchangeToJmsEndpoint());
from(getUriWithTransferedExchangeToJmsEndpoint()).to("mock:result");
// not transfered exchange routes
from("direct:nottransfered").to(getUriWithoutTransferedExchangeToJmsEndpoint());
from(getUriWithoutTransferedExchangeToJmsEndpoint()).to("mock:result");
}
};
}
@Override
protected Context createJndiContext() throws Exception {
JndiContext jndiContext = new JndiContext();
ActiveMQComponent amq = ActiveMQComponent.activeMQComponent("vm://localhost?broker.persistent=false");
amq.setCamelContext(context);
jndiContext.bind("jms", amq);
return jndiContext;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment