diff --git a/spring-integration-core/src/main/java/org/springframework/integration/support/channel/BeanFactoryChannelResolver.java b/spring-integration-core/src/main/java/org/springframework/integration/support/channel/BeanFactoryChannelResolver.java index 4ebce0b8d7..91935bd058 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/support/channel/BeanFactoryChannelResolver.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/support/channel/BeanFactoryChannelResolver.java @@ -88,7 +88,7 @@ public class BeanFactoryChannelResolver implements DestinationResolver(){ + + @Override + public Object answer(InvocationOnMock invocation) throws Throwable { + throw new NoSuchBeanDefinitionException("bar"); + } + }).when(beanFactory).getBean("foo", MessageChannel.class); + resolver.setBeanFactory(beanFactory); + try { + resolver.resolveDestination("foo"); + fail("Expected exception"); + } + catch (DestinationResolutionException e){ + assertThat(e.getMessage(), + Matchers.equalTo("failed to look up MessageChannel with name 'foo' in the BeanFactory.")); + } + } + + @Test + public void testBFCRNoRegistry() { + BeanFactoryChannelResolver resolver = new BeanFactoryChannelResolver(); + BeanFactory beanFactory = mock(BeanFactory.class); + doAnswer(new Answer(){ + + @Override + public Object answer(InvocationOnMock invocation) throws Throwable { + throw new NoSuchBeanDefinitionException("bar"); + } + }).when(beanFactory).getBean("foo", MessageChannel.class); + resolver.setBeanFactory(beanFactory); + try { + resolver.resolveDestination("foo"); + fail("Expected exception"); + } + catch (DestinationResolutionException e){ + assertThat(e.getMessage(), + Matchers.equalTo("failed to look up MessageChannel with name 'foo' in the BeanFactory (and there is no HeaderChannelRegistry present).")); + } + } + public static class Foo extends AbstractReplyProducingMessageHandler { @Override