2015-04-29 4 views
1

Я хотел знать, есть ли способ издеваться над пользовательским фильтром, который находится внутри подпотока, используя MUnit.Есть ли способ обмануть неглобальные фильтры в подпотоке с помощью MUnit?

Я использую Mule 3.4.0 и MUnit 3.4.0.M5.

Образец потока выглядит следующим образом.

<sub-flow name="a"> 
    <choice> 
      <when expression="something..."> 
       <custom-filter doc:name="filter a">...</custom-filter> 
      </when> 
      <otherwise> 
       ... 
      </otherwise> 
    </choice> 
</sub-flow> 

Я должен был создать обертку поток вокруг подпотока, потому что я получаю NullPointerException всякий раз, когда я пытаюсь попасть в поток суб непосредственно с помощью синтаксиса runFlow. Однако при этом я не могу издеваться над пользовательским фильтром, используя синтаксис whenMessageProcessor. Пожалуйста, смотрите мою попытку ниже.

whenMessageProcessor("custom-filter" 
.withAttributes(attribute("name").ofNamespace("doc").withValue("filter a")) 
.thenReturn(muleMessageWithPayload("some response"); 

Это приводит к тому, что сообщение не издевается.

ответ

1

Здесь есть проблемы, смешанные.

Вы того, чтобы обернуть вас суб-поток является MUNIT/Mule вопрос, как комментировал здесь: How to mock a Java component within Mule Flow using MUnit

Второй вопрос фильтр насмешливый. Короткий ответ вы не можете, пожалуйста, проверьте: https://github.com/mulesoft/munit/issues/108

Концептуально фильтр представляет собой ограниченный способ сделать выбор (или, если на обычном языке). Обычно обычно не издевается над выбором/если он скорее изменяет значение в переменной или в нашем случае в полезной нагрузке сообщения мула. Вот почему фильтр MP не может насмехаться.

HTH

+0

Спасибо за разъяснения! – jcb