package com.muleinaction; import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.notNullValue; import static org.junit.Assert.assertThat; import org.mule.api.MuleMessage; import org.mule.module.client.MuleClient; import org.mule.tck.junit4.FunctionalTestCase; import org.junit.Test; public class MessageEnricherTestCase extends FunctionalTestCase { @Override protected String getConfigResources() { return "message-enricher.xml"; } @Test public void singleEnrichment() throws Exception { MuleClient muleClient = new MuleClient(muleContext); MuleMessage result = muleClient.send("vm://invoice-processor", "ignored", null); assertThat(result, is(notNullValue())); assertThat(result.getPayload(), is(notNullValue())); assertThat(result.getPayload(), is(instanceOf(String.class))); assertThat(result.getPayloadAsString(), is("USD")); } @Test public void multipleEnrichment() throws Exception { MuleClient muleClient = new MuleClient(muleContext); MuleMessage result = muleClient.send("vm://message-enricher-2", "ignored", null); assertThat(result, is(notNullValue())); assertThat(result.getPayload(), is(notNullValue())); assertThat(result.getPayload(), is(instanceOf(Object[].class))); Object[] resultValue = (Object[]) result.getPayload(); assertThat(resultValue[0], is(instanceOf(String.class))); assertThat((String)resultValue[0], is("USD")); assertThat(resultValue[1], is(instanceOf(String.class))); assertThat((String)resultValue[1], is("ABC123")); } }