Как установить входящие свойства, используя установленный компонент сообщения в тестовом примере Munit - PullRequest
0 голосов
/ 08 мая 2018

В одном из моих тестовых примеров munit я пытаюсь установить парри uri, используя 'Set Message'. пара ключ-значение, как показано в примере ниже:

код товара :( '11', '10')

Когда я пытаюсь установить это в компоненте, я сталкиваюсь с проблемой с выражением MEL. Выражение с одинарной кавычкой, похоже, не принимает.

Ошибка: org.mule.api.MessagingException: сбой анализа MEL. Выражение: # [['productcode': '((' 11 ',' 10 '))']] является недопустимым выражением. (org.mule.munit.common.exception.MunitError).

Ниже приведен мой тестовый пример Munit.

<munit:test name="gl-impl-test-suite-gl-getTransactionDataFromAgresso-Test" description="Test">
        <mock:when messageProcessor=".*:.*" doc:name="mockGetReconciliationDataFromAgresso">
            <mock:with-attributes>
                <mock:with-attribute name="doc:name" whereValue="#['getReconciliationDataFromAgresso']"/>
            </mock:with-attributes>
            <mock:then-return payload="#[getResource('scaffolder/response/emp/getEmployeeDetails.xml').asString()]" mimeType="application/xml"/>
        </mock:when>
        <munit:set payload="#[]" doc:name="Set Message">
            <munit:inbound-properties>
                <munit:inbound-property key="http.query.parmas" value="#[['productcode' :'( ('11','10'))']]"/>
            </munit:inbound-properties>
        </munit:set>
        <logger level="INFO" doc:name="Logger"/>
        <flow-ref name="gl-getTransactionDataFromAgresso" doc:name="Flow-ref to gl-getTransactionDataFromAgresso"/>
    </munit:test>

Пожалуйста, дайте мне знать, как установить выражение MEL, которое содержит одинарные кавычки.

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

Ответ пользователя3366906 правильно решит проблему с одинарными кавычками, в противном случае вы можете избежать одинарных кавычек. Я обычно предпочитаю использовать смешанные кавычки, но редко вам нужны одинарные и двойные кавычки в строке, где экранирование полезно.

value="#[['productcode' :'((\'11\',\'10\'))']]"
0 голосов
/ 09 мая 2018

1001 * попробовать *

"#[[&quot;productcode&quot; :&quot;(('11','10'))&quot;]]"
...