@Test
public void removeTest() {
final EventDispatcher disp = new EventDispatcher(EventTypes.values());
final EventAPI eventAPI = disp.getPublicEventAPI();
assertTrue(disp.listeners.isEmpty());
eventAPI.addListener(l1, EVENT1, EVENT2, EVENT3);
assertEquals(3, disp.listeners.size());
assertTrue(disp.listeners.containsEntry(EVENT1, l1));
assertTrue(eventAPI.containsListener(l1, EVENT1));
assertTrue(eventAPI.containsListener(l1, EVENT2));
assertTrue(eventAPI.containsListener(l1, EVENT3));
eventAPI.removeListener(l1);
assertTrue(disp.listeners.isEmpty());
assertFalse(eventAPI.containsListener(l1, EVENT1));
assertFalse(eventAPI.containsListener(l1, EVENT2));
assertFalse(eventAPI.containsListener(l1, EVENT3));
}