Run Custom イベントプロセッサー

Run Custom イベントプロセッサー​を使用すると、Mule イベントコンテンツをカスタムアサーションに対して確認できます。

Run Custom プロセッサー​をプロジェクトに追加するには、次の連動関係を ​pom.xml​ ファイルに追加します。

<dependency>
    <groupId>com.mulesoft.munit</groupId>
    <artifactId>munit-assert</artifactId>
    <version>${munit.version}</version>
    <scope>test</scope>
</dependency>

また、エクスポートされたリソースとしてカスタムアサーションクラスを ​mule-artifact.json​ ファイルに追加する必要もあります。

たとえば、Java で次のアサーションを定義できます。

package org.mule.custom;
import org.mule.munit.assertion.api.MunitAssertion;
import org.mule.munit.assertion.api.TypedValue;

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 インターフェースに 1 つのメソッドのみを実装します: public void execute(TypedValue expression, Object params) throws AssertionError​。
2 カスタムロジックを実行します。この場合は、メッセージペイロードが ​Hello World​ であることを検証します。

CustomAssertion​ クラスは scr/test/java ディレクトリにある必要があります。

また、​Run Custom イベントプロセッサー​を使用してこれを実行します。

<munit-tools:run-custom
  assertion="org.mule.custom.CustomAssertion" (1)
  expression="#[payload]"/>
1 アサーション項目にカスタムアサーションの正規クラス名が含まれていて、クラスがエクスポートされている必要があります。

アプリケーションをパッケージ化するときにクラスをエクスポートするには、​org.mule.custom​ パッケージを ​mule-artifact.json​ に追加します。

{
    "name": "mule-application",
    "minMuleVersion": "4.2.0",
    "classLoaderModelLoaderDescriptor": {
        "id": "mule",
        "attributes": {
            "exportedPackages": [
                "org.mule.custom"
            ]
        }
    }
}
パッケージ名は ​exportedPackages​ コレクションでのみ設定する必要があります。