Example usage for org.springframework.integration.jms ChannelPublishingJmsMessageListener setErrorChannel

List of usage examples for org.springframework.integration.jms ChannelPublishingJmsMessageListener setErrorChannel

Introduction

In this page you can find the example usage for org.springframework.integration.jms ChannelPublishingJmsMessageListener setErrorChannel.

Prototype

public void setErrorChannel(MessageChannel errorChannel) 

Source Link

Usage

From source file:org.springframework.integration.jms.ChannelPublishingJmsMessageListenerTests.java

@Test
public void testBadConversion() throws Exception {
    final QueueChannel requestChannel = new QueueChannel();
    ChannelPublishingJmsMessageListener listener = new ChannelPublishingJmsMessageListener();
    Log logger = spy(TestUtils.getPropertyValue(listener, "logger", Log.class));
    doAnswer(new DoesNothing()).when(logger).error(anyString(), any(Throwable.class));
    new DirectFieldAccessor(listener).setPropertyValue("logger", logger);
    listener.setRequestChannel(requestChannel);
    QueueChannel errorChannel = new QueueChannel();
    listener.setErrorChannel(errorChannel);
    listener.setBeanFactory(mock(BeanFactory.class));
    listener.setMessageConverter(new TestMessageConverter() {

        @Override// w w  w.j a v  a2s  . c o m
        public Object fromMessage(javax.jms.Message message) throws JMSException, MessageConversionException {
            return null;
        }

    });
    listener.afterPropertiesSet();
    javax.jms.Message jmsMessage = session.createTextMessage("test");
    listener.onMessage(jmsMessage, mock(Session.class));
    ErrorMessage received = (ErrorMessage) errorChannel.receive(0);
    assertNotNull(received);
    assertThat(received.getPayload().getMessage(), startsWith("Inbound conversion failed"));
    listener.stop();
}