package org.atmosphere.plugin.jgroups; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.testng.Assert.assertEquals; import java.util.concurrent.Future; import org.atmosphere.cpr.Broadcaster; import org.jgroups.JChannel; import org.jgroups.protocols.pbcast.FLUSH; import org.testng.annotations.Test; public class JGroupsChannelTest { @Test (enabled = false) public void broadcastsClusteredMessage() throws Exception { Broadcaster broadcaster = mock(Broadcaster.class); Future broadcastedMessage = mock(Future.class); when(broadcaster.getID()).thenReturn("/topic"); when(broadcaster.broadcast("message")).thenReturn(broadcastedMessage); JChannel channel1 = new JChannel(); JChannel channel2 = new JChannel(); channel1.getProtocolStack().insertProtocolAtTop(new FLUSH()); channel2.getProtocolStack().insertProtocolAtTop(new FLUSH()); JGroupsChannel node1 = new JGroupsChannel(channel1, "cluster"); JGroupsChannel node2 = new JGroupsChannel(channel2, "cluster"); node1.addBroadcaster(broadcaster); node2.addBroadcaster(broadcaster); node1.init(); node2.init(); node2.send("/topic", "message"); channel2.startFlush(false); assertEquals(channel1.getReceivedMessages(), 1); assertEquals(channel2.getReceivedMessages(), 1); verify(broadcaster, times(1)).broadcast("message"); } }