как бросить org.mule.module.ws.consumer.SoapFaultException в mule munit, используя компонент «выбросить исключение» - PullRequest
0 голосов
/ 17 октября 2018

У меня есть требование в 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(&quot;InvalidMoniker&quot;),new javax.xml.namespace.QName(&quot;InvalidMoniker&quot;),new javax.xml.namespace.QName(&quot;InvalidMoniker&quot;),'&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;detail&gt;   &lt;ExceptionCode&gt;InvalidMoniker&lt;/ExceptionCode&gt;   &lt;Message&gt;The specified moniker is invalid.        (8455323b-57d4-434d-9ae0-70899a879546)&lt;/Message&gt; &lt;/detail&gt;')]" 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>

Может кто-нибудь помочь?

...