title: MUnit test fails when mocking external REST API call
body: <p>I have the following Mule flow that is built to retrieve some details from an external API and then map this to some payload to return to the calling client:</p>
  
  <pre><code>&lt;flow name="get:/clients/{clientId}:api-config"&gt;
  &lt;http:request config-ref="HTTPS_Request_Configuration" path="/api/clients/{clientId}" method="GET" host="host.com" port="443" doc:name="Find Client by ID"&gt;
      &lt;http:request-builder&gt;
          &lt;http:uri-param paramName="clientId" value="#[flowVars['clientId']]"/&gt;
      &lt;/http:request-builder&gt;
      &lt;http:success-status-code-validator values="0..599"/&gt;
  &lt;/http:request&gt;
  &lt;logger message="#[payload]" level="INFO" doc:name="Logger"/&gt;
  ...
  </code></pre>
  
  <p></p>
  
  <p>I have created the following unit test where I mock the HTTP request using the MUnit <code>mock</code> processor:</p>
  
  <pre><code>&lt;munit:test name="get:/clients/{clientId}:api-config-200-application/json-FlowTest" description="Verifying functionality of [get:/clients/{clientId}:api-config-200-application/json]"&gt;
  &lt;mock:when messageProcessor=".*:.*" doc:name="Mock"&gt;
      &lt;mock:with-attributes&gt;
          &lt;mock:with-attribute name="doc:name" whereValue="#['Find Client by ID']"/&gt;
      &lt;/mock:with-attributes&gt;
      &lt;mock:then-return payload="#[getResource('sample-client.json').asStream()]" mimeType="application/json"/&gt;
  &lt;/mock:when&gt;
  &lt;set-variable variableName="clientId" value="#['null']" doc:name="clientId"/&gt;
  &lt;http:request config-ref="HTTP_Request_Configuration" path="/clients/#[flowVars['clientId']]" method="GET" doc:name="HTTP"/&gt;
  &lt;object-to-string-transformer doc:name="http response to string"/&gt;
  &lt;munit:assert-true message="The HTTP Status code is not correct!" condition="#[messageInboundProperty('http.status').is(eq(200))]" doc:name="assert that - http.status eq 200"/&gt;
  &lt;munit:assert-on-equals message="The response payload is not correct!" expectedValue="..."/&gt;
  </code></pre>
  
  <p></p>
  
  <p>I'm getting an unusual error when I try and run this test. It seems as if the test is failing due to an HTTP timeout. I don't understand how this is possible when the HTTP request processor is being mocked and therefore no external calls should be getting made?</p>
  
  <p>The error message I'm seeing is as follows:</p>
  
  <pre><code>ERROR 2016-02-19 12:25:59,359 [main] org.mule.exception.DefaultMessagingExceptionStrategy: 
  ********************************************************************************
  Message               : Error sending HTTP request. Message payload is of type: String
  Code                  : MULE_ERROR--2
  --------------------------------------------------------------------------------
  Exception stack is:
  1. Timeout exceeded (java.util.concurrent.TimeoutException)
    com.ning.http.client.providers.grizzly.GrizzlyAsyncHttpProvider:426 (null)
  2. Error sending HTTP request. Message payload is of type: String (org.mule.api.MessagingException)
    org.mule.module.http.internal.request.DefaultHttpRequester:287 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MessagingException.html)
  --------------------------------------------------------------------------------
  Root Exception stack trace:
  java.util.concurrent.TimeoutException: Timeout exceeded
      at com.ning.http.client.providers.grizzly.GrizzlyAsyncHttpProvider.timeout(GrizzlyAsyncHttpProvider.java:426)
      at com.ning.http.client.providers.grizzly.GrizzlyAsyncHttpProvider$3.onTimeout(GrizzlyAsyncHttpProvider.java:274)
      at org.glassfish.grizzly.utils.IdleTimeoutFilter$DefaultWorker.doWork(IdleTimeoutFilter.java:398)
      + 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
  ********************************************************************************
  </code></pre>