Contact Free trial Login

Enable Flow Sources

The Enable Flow Sources element within the MUnit test tells MUnit which flow sources to load and execute for the test.

By default, MUnit does not start any of the event sources (flow sources such as triggers, and listeners). You must configure which flow sources must start for your tests.

Assume that your application has a flow with an HTTP listener that returns a specific payload:

<http:listener-config name="HTTP_Listener_config">
    <http:listener-connection host="localhost" port="1234"/>
</http:listener-config>

<flow name="http-example-flow">
    <http:listener path="/" config-ref="HTTP_Listener_config"/>
    <set-payload value="#['Hello World!']" mimeType="text/plain"/>
</flow>

For MUnit to be able to invoke that listener you must enable the http-transportFlow in your enable-flow-source property within your MUnit test:

<http:request-config name="HTTP_Request_config">
    <http:request-connection host="localhost" port="1234"/>
</http:request-config>

<munit:test name="http-example-test">
    <munit:enable-flow-sources>
        <munit:enable-flow-source value="http-example-flow"/>
    </munit:enable-flow-sources>

    <munit:execution>
        <http:request method="GET" path="/" config-ref="HTTP_Request_config"/>
    </munit:execution>

    <munit:validation>
        <munit-tools:assert-that expression="#[payload]"
                                 is="#[MunitTools::equalTo('Hello World!')]"/>
    </munit:validation>
</munit:test>

If the http-example-flow value is not listed as an enabled flow source, your MUnit test fails because it cannot initialize the HTTP listener configuration.

MUnit starts flow sources at the beginning of the test, and stops them at the end of the test. Flow sources are not executed during the before-suite/before-test, nor during the after-test/after-suite.
See Before/After scopes for more information.

Enabling Flow Sources from Anypoint Studio

You can define flow sources using the Mule Properties view of your MUnit test in Studio:

enable flow sources concept
  1. Click Add.

  2. Select the name of the flow you want to enable from the Name of the flow drop-down menu.

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub