@Test public void testEventSuperInterfaceHierarchy() { eventBus.register(this); eventBus.post(new MyEventInterfaceExtended() { }); assertEquals(0, countMyEventInterface); assertEquals(0, countMyEventInterfaceExtended); }
@Test public void testPostStickyThenPostNormal() throws InterruptedException { eventBus.postSticky("Sticky"); eventBus.post("NonSticky"); eventBus.register(this); assertEquals("Sticky", lastEvent); }
@Test public void testSubscriberInJar() { SubscriberInJar subscriber = new SubscriberInJar(); eventBus.register(subscriber); eventBus.post("Hi Jar"); eventBus.post(42); Assert.assertEquals(1, subscriber.getCollectedStrings().size()); Assert.assertEquals("Hi Jar", subscriber.getCollectedStrings().get(0)); } }
@Test public void testPostNonStickyRegisterSticky() throws InterruptedException { eventBus.post("NonSticky"); eventBus.register(this); assertNull(lastEvent); assertEquals(0, eventCount.intValue()); }
@Test public void testPostOnDifferentEventBus() { eventBus.register(this); new EventBus().post("Hello"); assertEquals(0, countStringEvent); }
@Test public void testSubscriberClassWithPrivateEvent() { eventBus.register(new PublicClassWithPrivateEvent()); PrivateEvent privateEvent = new PrivateEvent(); eventBus.post(privateEvent); assertEquals(privateEvent, lastEvent); assertEquals(1, eventsReceived.size()); }
@Test public void testSubscriberExtendingClassWithPrivateEvent() { eventBus.register(new PublicWithPrivateEventInSuperclass()); PrivateEvent privateEvent = new PrivateEvent(); eventBus.post(privateEvent); assertEquals(privateEvent, lastEvent); assertEquals(2, eventsReceived.size()); }
@Test public void testNoSubscriberEvent() { eventBus.register(this); eventBus.post("Foo"); assertEventCount(1); assertEquals(NoSubscriberEvent.class, lastEvent.getClass()); NoSubscriberEvent noSub = (NoSubscriberEvent) lastEvent; assertEquals("Foo", noSub.originalEvent); assertSame(eventBus, noSub.eventBus); }
@Test public void testMultipleSubscribeMethodsForEvent() { eventBus.register(this); MyEvent event = new MyEvent(); eventBus.post(event); assertEquals(1, countMyEvent); assertEquals(1, countMyEvent2); }
@Test public void testEventInheritance() { eventBus = EventBus.builder().eventInheritance(false).build(); eventBus.register(new ThrowingSubscriber()); eventBus.post("Foo"); }
@Test public void testAnonymousSubscriberClassWithPrivateSuperclass() { eventBus.register(new PublicWithPrivateSuperClass()); eventBus.post("Hello"); assertEquals("Hello", lastEvent); assertEquals(2, eventsReceived.size()); }
@Test public void testCancelWrongEvent() { eventBus.register(new SubscriberCancelOtherEvent()); eventBus.post("42"); assertEquals(0, eventCount.intValue()); assertNotNull(failed); }
@Test public void testThrowSubscriberException() { eventBus = EventBus.builder().throwSubscriberException(true).build(); eventBus.register(new SubscriberExceptionEventTracker()); eventBus.register(new ThrowingSubscriber()); try { eventBus.post("Foo"); fail("Should have thrown"); } catch (EventBusException e) { // Expected } }
@Test public void testSubscriberClassWithPrivateEvent() { eventBus.register(new PublicClassWithPrivateEvent()); PrivateEvent privateEvent = new PrivateEvent(); eventBus.post(privateEvent); assertEquals(privateEvent, lastEvent); assertEquals(1, eventsReceived.size()); }
@Test public void testSubscriberExtendingClassWithPrivateEvent() { eventBus.register(new PublicWithPrivateEventInSuperclass()); PrivateEvent privateEvent = new PrivateEvent(); eventBus.post(privateEvent); assertEquals(privateEvent, lastEvent); assertEquals(2, eventsReceived.size()); }
@Test public void testGenericEventAndSubscriber() { GenericEventSubscriber<IntTestEvent> genericSubscriber = new GenericEventSubscriber<IntTestEvent>(); eventBus.register(genericSubscriber); eventBus.post(new GenericEvent<Integer>()); assertEventCount(1); }
@Test public void testBadNoSubscriberSubscriber() { eventBus = EventBus.builder().logNoSubscriberMessages(false).build(); eventBus.register(this); eventBus.register(new BadNoSubscriberSubscriber()); eventBus.post("Foo"); assertEventCount(2); assertEquals(SubscriberExceptionEvent.class, lastEvent.getClass()); NoSubscriberEvent noSub = (NoSubscriberEvent) ((SubscriberExceptionEvent) lastEvent).causingEvent; assertEquals("Foo", noSub.originalEvent); }
@Test public void testPostInEventHandler() { RepostInteger reposter = new RepostInteger(); eventBus.register(reposter); eventBus.register(this); eventBus.post(1); assertEquals(10, countIntEvent); assertEquals(10, lastIntEvent); assertEquals(10, reposter.countEvent); assertEquals(10, reposter.lastEvent); }
@Test public void testDoNotSendSubscriberExceptionEvent() { eventBus = EventBus.builder().logSubscriberExceptions(false).sendSubscriberExceptionEvent(false).build(); eventBus.register(new SubscriberExceptionEventTracker()); eventBus.register(new ThrowingSubscriber()); eventBus.post("Foo"); assertEventCount(0); }