Mockito doAnswer for Camel Processor вызывает сбой метода разбиения - PullRequest
0 голосов
/ 07 мая 2019

У меня есть этот маршрут:

 public class SomeRoute {
     @OVerride
     public void configure() {
          from("direct:route1")
               .process(processor1)
               .split(body())
               .process(persistProcessor)
               ....    
     }
 }

Тестовый класс для этого:

 public class SOmeRouteTest {
     Processor processor1Mock;
     @Before
     public void setUp() {
         processor1Mock = Mockito.mock(Processor1.class);
         testObj = new SomeRoute();
         testObj.setProcessor1(processor1Mock);  
     }

     @TEst
     public void test() {
         //Processor processor = MOckito.mock(Processor1.class);
         doAnswer((Answer) invocation -> {
             // something with Exchange
             Exchange ex = invocation.getARgumentAt(0, Exchange.class);
             ex.getIn().setBody(new ArrayList<String>);
             return null;
       }) 

       template.sendBody("route1", json);
     }
 }

.Теперь разделение не работает, и оно идет напрямую в persistProcessor.Фактический Processor1 генерирует исключение приведения класса, потому что persistProcessor ожидает String, но маршрут передает ему ArrayList.

Пожалуйста, помогите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...