### Question:
EventPublisherApplicationAdapter implements Application { @Override public void toAdmin(Message message, SessionID sessionId) { publishEvent(ToAdmin.of(message, sessionId)); } EventPublisherApplicationAdapter(ApplicationEventPublisher applicationEventPublisher); @Override void fromAdmin(Message message, SessionID sessionId); @Override void fromApp(Message message, SessionID sessionId); @Override void onCreate(SessionID sessionId); @Override void onLogon(SessionID sessionId); @Override void onLogout(SessionID sessionId); @Override void toAdmin(Message message, SessionID sessionId); @Override void toApp(Message message, SessionID sessionId);  }### Answer:
@Test public void shouldPublishToAdminMessage() { Message message = mock(Message.class); SessionID sessionId = mock(SessionID.class); clientApplication.toAdmin(message, sessionId); await().atMost(FIVE_SECONDS).until(() -> receivedEvents.size() > 0); assertThat(receivedEvents.get(0)).isInstanceOf(ToAdmin.class); assertThat(((ToAdmin) receivedEvents.get(0)).getSessionId()).isEqualTo(sessionId); }