<dependency>
<groupId>com.mulesoft.munit</groupId>
<artifactId>munit-assert</artifactId>
<version>${munit.version}</version>
<scope>test</scope>
</dependency>
Run Custom Event Processor
The Run Custom event processor allows you to assert the Mule event content against a custom assertion.
To add the Run Custom processor to your project, add the following dependency to your pom.xml
file:
You must also add your custom assertion class to the mule-artifact.json
file as an exported resource.
For example, you can define the following assertion in Java:
public class CustomAssertion implements MunitAssertion {
@Override
public void execute(TypedValue expression, Object params) throws AssertionError { (1)
if (!"Hello World".equals(expression.getValue())) { (2)
throw new AssertionError("Error the payload is incorrect");
}
}
}
1 | Implement the only method in the interface public void execute(TypedValue expression, Object params) throws AssertionError |
2 | Run your custom logic, which in this case validates that the message’s payload is Hello World . |
And then use the Run Custom Event Processor to run it:
<munit-tools:run-custom
assertion="com.example.CustomAssertion" (1)
expression="#[payload]"/>
1 | The assertion field needs to have the canonical class name of your custom assertion and the class needs to be exported. |
To export it when packaging your application, add the CustomAssertion
to your mule-artifact.json
{
"name": "mule-application",
"minMuleVersion": "4.2.0",
"classLoaderModelLoaderDescriptor": {
"id": "mule",
"attributes": {
"exportedResources": [
"resources/CustomAssertion.java"
]
}
}
}