A simple JUnit test for when you just can’t remember the Mule JUnit testing syntax 😉
Mule flow
A Mule flow that takes a username as input and concatenates it with a “Hello”. The request is done by a GET call:
Flow code
<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration"> <http:listener config-ref="HTTP_Listener_Configuration" path="/test" doc:name="HTTP"> <set-payload value="#['Hello '+message.inboundProperties.'http.query.params'.username]" doc:name="Set Payload">
Java test code:
import org.junit.Test; import org.mule.DefaultMuleMessage; import org.mule.api.MuleMessage; import org.mule.api.client.MuleClient; import org.mule.tck.junit4.FunctionalTestCase; import junit.framework.Assert; public class MyTests extends FunctionalTestCase { @Test public void testMyFlow() throws Exception { // Get the Mule Context MuleClient muleClient = muleContext.getClient(); // Create an empty test Mule message DefaultMuleMessage message = new DefaultMuleMessage(null, muleContext); // Make a call to the tested web service MuleMessage responseMessage = muleClient.send( "http://localhost:8081/test?username=Niklas", message ); // Get response as a string String responsePayload = responseMessage.getPayloadAsString(); // Assert response Assert.assertEquals("Hello Niklas", responsePayload); } @Override protected String[] getConfigFiles() { // Path to the Mule configuration file that is being tested return new String[]{"src/main/app/helloworld.xml"}; } }
Tested on OSX 10.15.7, Mule 3.9.4, and JUnit 4.13