Тестирование errorChannel в весенней интеграции - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть следующая конфигурация

    <bean id="mail.service.messaging.messageListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer"
          p:autoStartup="true" p:sessionTransacted="true"
          p:connectionFactory-ref="mail.messaging.nonxa.jmsConnectionFactory"
          p:maxConcurrentConsumers="${jms.mail.max.concurrent.consumers}"
          p:destination-ref="mail.service.messaging.inboundJmsQueue"
          p:concurrentConsumers="${jms.mail.concurrent.consumers}" p:receiveTimeout="${jms.mail.receive.timeout}"
          p:recoveryInterval="${jms.mail.recovery.interval}" p:taskExecutor-ref="mail.service.messaging.jmsTaskExecutor"
          p:cacheLevelName="${jms.listener.cache.level:CACHE_CONSUMER}"/>

    <int-jms:message-driven-channel-adapter id="mail.service.messaging.inboundJmsChannelAdapter"
                                            container="mail.service.messaging.messageListenerContainer"
                                            message-converter="mail.messaging.marshallingMessageConverter"
                                            error-channel="mail.service.messaging.errorHandler"
                                            channel="mail.service.messaging.inboundMessageChannel" />

    <int:service-activator input-channel="mail.service.messaging.inboundMessageChannel"
                           ref="mail.service.messaging.mailMessagingService"
                           method="processEmail"/>

    <int:service-activator input-channel="mail.service.messaging.errorHandler"
                           ref="mail.service.messaging.mailMessagingService"
                           method="errorHandler"/>

Я хочу проверить, что, если processEmail не удается, то errorChannel с исключением процесса правильно.

Я пытался издеваться DefaultMessageListenerContainer, но не ясно, как отправить сообщение в этот контейнер. Также я попытался создать экземпляр JmsTemplate и отправить сообщение в очередь, но это не вызывает метод processEmail (проверено с помощью Mockito.verify)

...