@Override public void run() { for (int i = 0; i < 1000; i++) { bus.unregister(simpleTarget); latch.countDown(); } } }).start();
@Test public void testUnregisterWithoutRegistration() { ExceptionTarget exceptionTarget = Mockito.spy(new ExceptionTarget()); bus.unregister(exceptionTarget, "one"); verify(logger).log(exceptionTarget.getClass() + " is either not subscribed(on some channel ID you wish to unregister " + "from) " + "or has " + "already been " + "unregistered"); }
@Test public void testUnregisterWithoutRegistrationOnChannelID() { ExceptionTarget exceptionTarget = Mockito.spy(new ExceptionTarget()); bus.register(exceptionTarget, "one"); bus.unregister(exceptionTarget); verify(logger).log(exceptionTarget.getClass() + " is either not subscribed(on some channel ID you wish to unregister " + "from) " + "or has " + "already been " + "unregistered"); }
@Test public void testChannelTargetUnregister() throws Exception { ChannelTarget channelTargetOne = Mockito.spy(new ChannelTarget()); bus.register(channelTargetOne, ChannelTarget.CHANNEL_ONE, ChannelTarget.CHANNEL_TWO, ChannelTarget.CHANNEL_DEFAULT); bus.post("Message Default"); verify(channelTargetOne, never()).onEventForTypeOne("Message Default"); verify(channelTargetOne, never()).onEventForTypeTwo("Message Default"); verify(channelTargetOne).onEventForTypeDefault("Message Default"); bus.unregister(channelTargetOne); bus.post("Message Two", ChannelTarget.CHANNEL_TWO); verify(channelTargetOne, never()).onEventForTypeOne("Message Two"); verify(channelTargetOne, never()).onEventForTypeDefault("Message Two"); verify(channelTargetOne).onEventForTypeTwo("Message Two"); bus.unregister(channelTargetOne, ChannelTarget.CHANNEL_ONE, ChannelTarget.CHANNEL_TWO); }
@Test public void testChannelTarget() throws Exception { ChannelTarget channelTargetOne = Mockito.spy(new ChannelTarget()); ChannelTarget channelTargetTwo = Mockito.spy(new ChannelTarget()); bus.register(channelTargetOne, ChannelTarget.CHANNEL_ONE); bus.register(channelTargetTwo, ChannelTarget.CHANNEL_TWO); bus.post("Message One", ChannelTarget.CHANNEL_ONE); verify(channelTargetOne).onEventForTypeOne("Message One"); verify(channelTargetOne, never()).onEventForTypeTwo("Message One"); bus.post("Message two", ChannelTarget.CHANNEL_TWO); verify(channelTargetTwo).onEventForTypeTwo("Message two"); verify(channelTargetTwo, never()).onEventForTypeOne("Message two"); bus.unregister(channelTargetOne, ChannelTarget.CHANNEL_ONE); bus.unregister(channelTargetTwo, ChannelTarget.CHANNEL_TWO); }
@Test public void testChannelTargetDefault() throws Exception { ChannelTarget channelTargetOne = Mockito.spy(new ChannelTarget()); bus.register(channelTargetOne, ChannelTarget.CHANNEL_ONE, ChannelTarget.CHANNEL_TWO, ChannelTarget.CHANNEL_DEFAULT); bus.post("Message Default"); verify(channelTargetOne, never()).onEventForTypeOne("Message Default"); verify(channelTargetOne, never()).onEventForTypeTwo("Message Default"); verify(channelTargetOne).onEventForTypeDefault("Message Default"); bus.post("Message One", ChannelTarget.CHANNEL_ONE); verify(channelTargetOne).onEventForTypeOne("Message One"); verify(channelTargetOne, never()).onEventForTypeDefault("Message One"); verify(channelTargetOne, never()).onEventForTypeTwo("Message One"); bus.unregister(channelTargetOne, ChannelTarget.CHANNEL_ONE, ChannelTarget.CHANNEL_TWO, ChannelTarget.CHANNEL_DEFAULT); }
@Test public void testSubClassEvent() throws Exception { SubClassEventTarget subClassEventTarget = Mockito.spy(new SubClassEventTarget()); bus.register(subClassEventTarget); SubClassEvent event = new SubClassEvent(); bus.post(event); verify(subClassEventTarget).onEvent(event); verify(subClassEventTarget).onEventSubClass(event); bus.unregister(subClassEventTarget); }
@Test public void testInterfaceEvent() throws Exception { InterfaceEventTarget interfaceEventTarget = Mockito.spy(new InterfaceEventTarget()); bus.register(interfaceEventTarget); InterfaceEventImpl event = new InterfaceEventImpl(); bus.post(event); verify(interfaceEventTarget).onEventInterface(event); verify(interfaceEventTarget).onEventInterfaceImpl(event); bus.unregister(interfaceEventTarget); }
@Test public void testSuperSimpleTarget() throws Exception { SuperSimpleTarget superSimpleTarget = Mockito.spy(new SuperSimpleTarget()); bus.register(superSimpleTarget); Event event = new Event(); bus.post(event); verify(superSimpleTarget).onEventOne(event); verify(superSimpleTarget).onEventTwo(event); verify(superSimpleTarget).onEventThree(event); bus.unregister(superSimpleTarget); Event eventOne = new Event(); bus.post(eventOne); verify(superSimpleTarget, never()).onEventOne(eventOne); verify(superSimpleTarget, never()).onEventTwo(eventOne); verify(superSimpleTarget, never()).onEventThree(eventOne); }
@Test public void testChannelMultipleChannelMethod() throws Exception { MultipleChannelIDMethod multipleChannelIDMethod = Mockito.spy(new MultipleChannelIDMethod()); bus.register(multipleChannelIDMethod, ChannelTarget.CHANNEL_ONE, ChannelTarget.CHANNEL_TWO); bus.post("Message on One", ChannelTarget.CHANNEL_ONE); verify(multipleChannelIDMethod).onEventForTypeString("Message on One"); bus.post("Message on two", ChannelTarget.CHANNEL_TWO); verify(multipleChannelIDMethod).onEventForTypeString("Message on two"); bus.post("Message on default"); verify(multipleChannelIDMethod, never()).onEventForTypeString("Message on default"); bus.unregister(multipleChannelIDMethod, ChannelTarget.CHANNEL_ONE, ChannelTarget.CHANNEL_TWO); }
@Test public void testSimpleTarget() throws Exception { SimpleTarget simpleTarget = Mockito.spy(new SimpleTarget()); bus.register(simpleTarget); Event event = new Event(); bus.post(event); verify(simpleTarget).onEventOne(event); verify(simpleTarget).onEventTwo(event); bus.unregister(simpleTarget); Event eventOne = new Event(); bus.post(eventOne); verify(simpleTarget, never()).onEventOne(eventOne); verify(simpleTarget, never()).onEventTwo(eventOne); }
@Test public void testIsRegistered() throws Exception { boolean isRegistered; ChannelTarget channelTargetOne = Mockito.spy(new ChannelTarget()); isRegistered = bus.isRegistered(channelTargetOne, ChannelTarget.CHANNEL_ONE); assertTrue(!isRegistered); bus.register(channelTargetOne, ChannelTarget.CHANNEL_ONE, ChannelTarget.CHANNEL_TWO, ChannelTarget.CHANNEL_DEFAULT); isRegistered = bus.isRegistered(channelTargetOne, ChannelTarget.CHANNEL_ONE, ChannelTarget.CHANNEL_TWO); assertTrue(isRegistered); isRegistered = bus.isRegistered(channelTargetOne); assertTrue(isRegistered); bus.unregister(channelTargetOne, ChannelTarget.CHANNEL_ONE); isRegistered = bus.isRegistered(channelTargetOne, ChannelTarget.CHANNEL_ONE, ChannelTarget.CHANNEL_TWO); assertTrue(!isRegistered); bus.unregister(channelTargetOne, ChannelTarget.CHANNEL_DEFAULT); isRegistered = bus.isRegistered(channelTargetOne); assertTrue(!isRegistered); bus.register(channelTargetOne, ChannelTarget.CHANNEL_ONE); isRegistered = bus.isRegistered(channelTargetOne, ChannelTarget.CHANNEL_ONE, ChannelTarget.CHANNEL_TWO, ChannelTarget.CHANNEL_THREE); assertTrue(!isRegistered); }
@Test public void testOverrideTarget() throws Exception { OverrideTarget overrideTarget = Mockito.spy(new OverrideTarget()); bus.register(overrideTarget); EventOne eventOne = new EventOne(); EventTwo eventTwo = new EventTwo(); bus.post(eventOne); verify(overrideTarget).onEvent(eventOne); verify(overrideTarget, never()).onEvent(eventTwo); bus.post(eventTwo); verify(overrideTarget).onEvent(eventTwo); bus.unregister(overrideTarget); }