Как получить доступ к атрибутам, включая заголовки и параметры запроса, в Munit set Event processor. Я использую Anypoint Studio 7.5 - PullRequest
0 голосов
/ 09 июля 2020

Как получить доступ к атрибутам, включая заголовки, параметры запроса, в обработчике событий набора Munit. Я использую Anypoint Studio 7.5, с которым пробовал но это не сработало.

<sub-flow name="setUserAndPass">
    <choice doc:name="Choice" >
        <when expression='attributes."headers"."authorization" != null'>
            <ee:transform doc:name="Transform Message" >
                <ee:message >
                </ee:message>
                <ee:variables >
                    <ee:set-variable variableName="userAndPass" ><![CDATA[%dw 2.0
                            import * from dw::core::Binaries
                            output text/json
                            var auth = attributes."headers"."authorization"
                            ---
                            (fromBase64((auth splitBy(" "))[1] as Binary)) splitBy(":")]]></ee:set-variable>
                </ee:variables>
            </ee:transform>
            <set-variable value='#[vars.userAndPass[0]]' doc:name="Set lvUSERNAME Variable" variableName="lvUSERNAME"/>
            <set-variable value='#[vars.userAndPass[1]]' doc:name="Set lvPASSWORD  variable" variableName="lvPASSWORD "/>
        </when>
        <otherwise >
            <set-variable value='#[attributes."headers"."username"]' doc:name="Set lvUSERNAME Variable" variableName="lvUSERNAME" />
            <set-variable value='#[attributes."headers"."password"]' doc:name="Set lvPASSWORD Variable" variableName="lvPASSWORD" />
        </otherwise>
    </choice>
</sub-flow>

Munit Flow:

<munit:test name="appname-test-suite-setUserAndPassTest" description="Test">
    <munit:behavior >
        <munit:set-event doc:name="Set Event">
            <munit:attributes value="#[
    {
        headers : {'authorization': 'authvalue'}
    }]" />
        </munit:set-event>
    </munit:behavior>
    <munit:execution >
        <flow-ref doc:name="Flow-ref to setUserAndPass" name="setUserAndPass"/>
    </munit:execution>
    <munit:validation >
        <munit-tools:assert-equals doc:name="Assert equals" actual="#[vars.lvUSERNAME]" expected="usernamevalue"/>
    </munit:validation>
</munit:test>

1 Ответ

0 голосов
/ 09 июля 2020

Должно быть так:

<munit:set-event doc:name="Set Event">
    <munit:payload value="#['..']" encoding="UTF-16" />
    <munit:attributes value="#[
        {
            headers : {'token': 'value1'},
            queryParams : {'queryParam1': 'value2'}
        }]" encoding="UTF-16" />
</munit:set-event>
...