@Test public void testUnregisterNotLeaking() { int heapMBytes = (int) (Runtime.getRuntime().maxMemory() / (1024L * 1024L)); for (int i = 0; i < heapMBytes * 2; i++) { @SuppressWarnings("unused") EventBusBasicTest subscriber = new EventBusBasicTest() { byte[] expensiveObject = new byte[1024 * 1024]; }; eventBus.register(subscriber); eventBus.unregister(subscriber); log("Iteration " + i + " / max heap: " + heapMBytes); } }
@Test public void testRegisterAndPost() { // Use an activity to test real life performance StringEventSubscriber stringEventSubscriber = new StringEventSubscriber(); String event = "Hello"; long start = System.currentTimeMillis(); eventBus.register(stringEventSubscriber); long time = System.currentTimeMillis() - start; log("Registered in " + time + "ms"); eventBus.post(event); assertEquals(event, stringEventSubscriber.lastStringEvent); }
@Test public void testPostWithTwoSubscriber() { EventBusBasicTest test2 = new EventBusBasicTest(); eventBus.register(this); eventBus.register(test2); String event = "Hello"; eventBus.post(event); assertEquals(event, lastStringEvent); assertEquals(event, test2.lastStringEvent); }
@Test public void testPostMultipleTimes() { eventBus.register(this); MyEvent event = new MyEvent(); int count = 1000; long start = System.currentTimeMillis(); // Debug.startMethodTracing("testPostMultipleTimes" + count); for (int i = 0; i < count; i++) { eventBus.post(event); } // Debug.stopMethodTracing(); long time = System.currentTimeMillis() - start; log("Posted " + count + " events in " + time + "ms"); assertEquals(count, countMyEvent); }
@Test public void testPostWithTwoSubscriber() { EventBusBasicTest test2 = new EventBusBasicTest(); eventBus.register(this); eventBus.register(test2); String event = "Hello"; eventBus.post(event); assertEquals(event, lastStringEvent); assertEquals(event, test2.lastStringEvent); }
@Test public void testUnregisterNotLeaking() { int heapMBytes = (int) (Runtime.getRuntime().maxMemory() / (1024L * 1024L)); for (int i = 0; i < heapMBytes * 2; i++) { @SuppressWarnings("unused") EventBusBasicTest subscriber = new EventBusBasicTest() { byte[] expensiveObject = new byte[1024 * 1024]; }; eventBus.register(subscriber); eventBus.unregister(subscriber); log("Iteration " + i + " / max heap: " + heapMBytes); } }
@Test public void testRegisterAndPost() { // Use an activity to test real life performance StringEventSubscriber stringEventSubscriber = new StringEventSubscriber(); String event = "Hello"; long start = System.currentTimeMillis(); eventBus.register(stringEventSubscriber); long time = System.currentTimeMillis() - start; log("Registered in " + time + "ms"); eventBus.post(event); assertEquals(event, stringEventSubscriber.lastStringEvent); }
@Test public void testPostMultipleTimes() { eventBus.register(this); MyEvent event = new MyEvent(); int count = 1000; long start = System.currentTimeMillis(); // Debug.startMethodTracing("testPostMultipleTimes" + count); for (int i = 0; i < count; i++) { eventBus.post(event); } // Debug.stopMethodTracing(); long time = System.currentTimeMillis() - start; log("Posted " + count + " events in " + time + "ms"); assertEquals(count, countMyEvent); }