package org.jentrata.ebms.utils; import org.apache.camel.EndpointInject; import org.apache.camel.Exchange; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.test.junit4.CamelTestSupport; import org.junit.Test; import java.text.SimpleDateFormat; import java.util.Date; import static org.jentrata.ebms.utils.ExpressionHelper.headerWithDefault; /** * Unit test for ExpressionHelper * * @author aaronwalker */ public class ExpressionHelperTest extends CamelTestSupport { @EndpointInject(uri = "mock:test") private MockEndpoint mockTest; @Test public void shouldGetDefaultValue() throws Exception { mockTest.setExpectedMessageCount(1); mockTest.expectedHeaderReceived("test","defaultValue"); Exchange exchange = createExchangeWithBody("test"); context().createProducerTemplate().send("direct:testExpressWithDefault",exchange); assertMockEndpointsSatisfied(); } @Test public void shouldGetDefaultSimpleValue() throws Exception { mockTest.setExpectedMessageCount(1); mockTest.expectedHeaderReceived("test",new SimpleDateFormat("yyyy-MM-dd").format(new Date())); Exchange exchange = createExchangeWithBody("test"); context().createProducerTemplate().send("direct:testExpressWithSimpleDefault",exchange); assertMockEndpointsSatisfied(); } @Test public void shouldGetHeaderValue() throws Exception { mockTest.setExpectedMessageCount(1); mockTest.expectedHeaderReceived("test","headerValue"); Exchange exchange = createExchangeWithBody("test"); exchange.getIn().setHeader("test","headerValue"); context().createProducerTemplate().send("direct:testExpressWithDefault",exchange); assertMockEndpointsSatisfied(); } @Override protected RouteBuilder createRouteBuilder() throws Exception { return new RouteBuilder() { @Override public void configure() throws Exception { from("direct:testExpressWithDefault") .setHeader("test", headerWithDefault("test",constant("defaultValue"))) .to(mockTest) .routeId("testExpressWithDefault"); from("direct:testExpressWithSimpleDefault") .setHeader("test", headerWithDefault("test",simple("${date:now:yyy-MM-dd}"))) .to(mockTest) .routeId("testExpressWithSimpleDefault"); } }; } }