### Question:
DefaultEventManager implements EventManager { public boolean removeListener(Object listener) { if (listener == null) { return false; } boolean didRemove = false; synchronized (subjects) { if (!subjects.isEmpty()) { for (EventSubject subject : subjects.keySet()) { didRemove |= this.removeListener(listener, subject); } } } return didRemove; } DefaultEventManager();  DefaultEventManager(int dispatchThreadCount); boolean isStopped(); boolean isSingleThreaded(); @BeforeScopeEnd void shutdown(); void addListener(
            Object listener,
            String methodName,
            Class<?> eventParameterClass,
            EventSubject subject); void addNonBlockingListener(
            Object listener,
            String methodName,
            Class<?> eventParameterClass,
            EventSubject subject); void addListener(
            Object listener,
            String methodName,
            Class<?> eventParameterClass,
            EventSubject subject,
            Object sender); void addNonBlockingListener(
            Object listener,
            String methodName,
            Class<?> eventParameterClass,
            EventSubject subject,
            Object sender); boolean removeListener(Object listener); boolean removeAllListeners(EventSubject subject); boolean removeListener(Object listener, EventSubject subject); boolean removeListener(Object listener, EventSubject subject, Object sender); void postEvent(EventObject event, EventSubject subject); void postNonBlockingEvent(EventObject event, EventSubject subject);  }### Answer:
@Test public void testRemoveOnEmptyList() { EventSubject subject = EventSubject.getSubject(this.getClass(), "XXX"); assertFalse(eventManager.removeListener(this, subject)); }
@Test public void testRemoveOnNullSubject() { assertFalse(eventManager.removeListener(this, null)); }