package com.muleinaction; import static com.muleinaction.Constants.ACME_TEST_MESSAGE; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; import java.util.List; import java.util.Map; import org.junit.Rule; import org.junit.Test; import org.mule.api.MuleMessage; import org.mule.api.client.MuleClient; import org.mule.tck.functional.FunctionalTestComponent; import org.mule.tck.junit4.FunctionalTestCase; import org.mule.tck.junit4.rule.DynamicPort; @SuppressWarnings("unchecked") //<start id="lis_12_acme_api_bridge_test"/> public class AcmeApiBridgeTestCase extends FunctionalTestCase { @Rule public DynamicPort port = new DynamicPort("port");//<co id="lis_12_acme_api_bridge_test-0"/> @Override protected String getConfigResources()//<co id="lis_12_acme_api_bridge_test-1"/> { return "functional-test-stubs.xml,acme-api-bridge.xml"; } @Test public void testSuccessfulJdbcAndHttpDispatches() throws Exception { MuleClient muleClient = muleContext.getClient();//<co id="lis_12_acme_api_bridge_test-2"/> muleClient.dispatch("vm://invokeAcmeAmi",//<co id="lis_12_acme_api_bridge_test-3"/> ACME_TEST_MESSAGE, null); Thread.sleep(5000L);//<co id="lis_12_acme_api_bridge_test-4"/> MuleMessage dbResponse = muleClient.request("jdbc://retrieveData", 1000 * getTestTimeoutSecs());//<co id="lis_12_acme_api_bridge_test-5"/> List<Map<String, String>> resultSet = (List<Map<String,String>>) dbResponse.getPayload(); assertThat(resultSet.get(0).get("DATA"),//<co id="lis_12_acme_api_bridge_test-6"/> is(ACME_TEST_MESSAGE)); FunctionalTestComponent ftc = getFunctionalTestComponent("acmeApiStub");//<co id="lis_12_acme_api_bridge_test-7"/> assertThat(ftc.getReceivedMessagesCount(),//<co id="lis_12_acme_api_bridge_test-8"/> is(1)); String lastReceivedMessage = (String) ftc.getLastReceivedMessage();//<co id="lis_12_acme_api_bridge_test-9"/> assertThat(lastReceivedMessage,//<co id="lis_12_acme_api_bridge_test-10"/> is(ACME_TEST_MESSAGE)); } } //<end id="lis_12_acme_api_bridge_test"/>