INT-1814 added INFO message when DirectChannel has more then one subscriber
This commit is contained in:
@@ -18,11 +18,17 @@ package org.springframework.integration.channel;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.junit.Test;
|
||||
import org.mockito.Mockito;
|
||||
|
||||
import org.springframework.beans.DirectFieldAccessor;
|
||||
import org.springframework.integration.Message;
|
||||
@@ -30,6 +36,9 @@ import org.springframework.integration.core.MessageHandler;
|
||||
import org.springframework.integration.dispatcher.RoundRobinLoadBalancingStrategy;
|
||||
import org.springframework.integration.dispatcher.UnicastingDispatcher;
|
||||
import org.springframework.integration.message.GenericMessage;
|
||||
import org.springframework.integration.test.util.TestUtils;
|
||||
import org.springframework.util.ReflectionUtils;
|
||||
import org.springframework.util.ReflectionUtils.FieldCallback;
|
||||
|
||||
/**
|
||||
* @author Mark Fisher
|
||||
@@ -51,6 +60,26 @@ public class DirectChannelTests {
|
||||
Object loadBalancingStrategy = dispatcherAccessor.getPropertyValue("loadBalancingStrategy");
|
||||
assertTrue(loadBalancingStrategy instanceof RoundRobinLoadBalancingStrategy);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testWithMoreThenOneSubscriber() {
|
||||
final DirectChannel channel = new DirectChannel();
|
||||
final Log logger = mock(Log.class);
|
||||
ReflectionUtils.doWithFields(AbstractMessageChannel.class, new FieldCallback() {
|
||||
|
||||
public void doWith(Field field) throws IllegalArgumentException,
|
||||
IllegalAccessException {
|
||||
if ("logger".equals(field.getName())){
|
||||
field.setAccessible(true);
|
||||
field.set(channel, logger);
|
||||
}
|
||||
}
|
||||
});
|
||||
channel.subscribe(mock(MessageHandler.class));
|
||||
verify(logger, times(0)).info(Mockito.anyString());
|
||||
channel.subscribe(mock(MessageHandler.class));
|
||||
verify(logger, times(1)).info(Mockito.anyString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSendInSeparateThread() throws InterruptedException {
|
||||
|
||||
Reference in New Issue
Block a user