### Question:
EventBridge implements EventListener { public void startup(EventManager eventManager, int mode) throws Exception { this.startup(eventManager, mode, null); } EventBridge(EventSubject localSubject, String externalSubject);  EventBridge(Collection<EventSubject> localSubjects, String externalSubject); static String convertToExternalSubject(EventSubject localSubject); String getExternalSubject(); boolean isRunning(); Collection<EventSubject> getLocalSubjects(); EventManager getEventManager(); Object getExternalEventSource(); boolean receivesLocalEvents(); boolean receivesExternalEvents(); void startup(EventManager eventManager, int mode); void startup(EventManager eventManager, int mode, Object localEventSource); void startup(
            EventManager eventManager,
            int mode,
            Object localEventSource,
            Object remoteEventSource); void shutdown(); static final int RECEIVE_LOCAL; static final int RECEIVE_EXTERNAL; static final int RECEIVE_LOCAL_EXTERNAL; }### Answer:
@Test public void testStartup() throws Exception { EventSubject local = EventSubject .getSubject(EventBridgeTest.class, "testInstall"); String external = "externalSubject"; TestBridge bridge = new TestBridge(local, external); DefaultEventManager manager = new DefaultEventManager(); managersToClean.add(manager); bridge.startup(manager, EventBridge.RECEIVE_LOCAL_EXTERNAL); assertSame(manager, bridge.eventManager); assertEquals(1, bridge.startupCalls); assertEquals(0, bridge.shutdownCalls); DefaultEventManager newManager = new DefaultEventManager(); managersToClean.add(newManager); bridge.startup(newManager, EventBridge.RECEIVE_LOCAL_EXTERNAL); assertSame(newManager, bridge.eventManager); assertEquals(2, bridge.startupCalls); assertEquals(1, bridge.shutdownCalls); }