EventBus { public Flowable<Object[]> on(Object event) { return on(event, defaultBackpressureStrategy, defaultScheduler); } EventBus(String identifier,
                    EventDispatchConfig eventDispatchConfig,
                    Metrics metrics); void emit(Object event, Object... data); Flowable<Object[]> on(Object event); Flowable<Object[]> on(Object event, BackpressureStrategy backpressureStrategy); Flowable<Object[]> on(Object event, BackpressureStrategy backpressureStrategy, Scheduler scheduler);  }
@Test void testRegisteringNullEventThrows() { Throwable ex = assertThrows(NullPointerException.class, () -> eventBus.on(null)); assertThat(ex.getMessage(), containsString("event")); }
@Test void eachSubscriptionFedByDifferentFlowable() { Object f1 = eventBus.on("x"); Object f2 = eventBus.on("x"); assertThat(f1, not(sameInstance(f2))); }