У меня есть требование в Mule , где мне нужно выдать исключение типа org.mule.module.ws.consumer.SoapFaultException когда компонент, который он выполняет, равен потребитель веб-службы во время тестирования Munit
До сих пор я пробовал ниже, но безуспешно.
#[new org.mule.module.ws.consumer.SoapFaultException(message,new javax.xml.namespace.QName("InvalidMoniker"),new javax.xml.namespace.QName("InvalidMoniker"),new javax.xml.namespace.QName("InvalidMoniker"),'<?xml version="1.0" encoding="UTF-8"?> <detail> <ExceptionCode>InvalidMoniker</ExceptionCode> <Message>The specified moniker is invalid. (8455323b-57d4-434d-9ae0-70899a879546)</Message> </detail>')]
Это должно вызвать исключение с полезной нагрузкой какниже.
<?xml version="1.0" encoding="UTF-8"?>
<detail>
<ExceptionCode>InvalidMoniker</ExceptionCode>
<Message>The specified moniker is invalid.
(8455323b-57d4-434d-9ae0-70899a879546)</Message>
</detail>
Ниже приведен мой полный контрольный пример.
<munit:test name="post:/addresses/lookup:application/json:sys-customer-mgmt-config-422-application/json-FlowTest" description="Verifying functionality of [post:/addresses/lookup:application/json:sys-customer-mgmt-config-422-application/json]" >
<mock:throw-an exception-ref="#[new org.mule.module.ws.consumer.SoapFaultException(message,new javax.xml.namespace.QName("InvalidMoniker"),new javax.xml.namespace.QName("InvalidMoniker"),new javax.xml.namespace.QName("InvalidMoniker"),'<?xml version="1.0" encoding="UTF-8"?> <detail> <ExceptionCode>InvalidMoniker</ExceptionCode> <Message>The specified moniker is invalid. (8455323b-57d4-434d-9ae0-70899a879546)</Message> </detail>')]" whenCalling=".*:.*" doc:name="Throw an Exception">
<mock:with-attributes>
<mock:with-attribute name="doc:name" whereValue="#['Call QAS DoGetAddress WS V3']"/>
</mock:with-attributes>
</mock:throw-an>
<set-payload value="#[getResource('scaffolder/request/post_addresses_lookup_application_json.json').asString()]" doc:name="Set Payload"/>
<http:request config-ref="HTTP_Request_Configuration_Munit" method="POST" path="/sys-customer-mgmt/v1/addresses/lookup" doc:name="HTTP">
<http:request-builder>
<http:header headerName="Accept" value="application/json" />
<http:header headerName="Content-Type" value="application/json" />
</http:request-builder>
<http:success-status-code-validator values="422" />
</http:request>
<object-to-string-transformer doc:name="http response to string" />
<munit:assert-true message="The HTTP Status code is not correct!" condition="#[messageInboundProperty('http.status').is(eq(422))]" doc:name="assert that - http.status eq 422" />
<expression-component doc:name="assert JSON Payload"><![CDATA[org.skyscreamer.jsonassert.JSONAssert.assertEquals(getResource('addresses-lookup/422-response.json').asString(),payload,false);]]></expression-component>
</munit:test>
Может кто-нибудь помочь?