@Override public void messageCleared(final Message message) { if (ui.isAttached()) { ui.access(() -> eventBus.fireEvent(new MessageEvent(message, true))); } }
@Test public void sendsEvents() throws InterruptedException { // GIVEN EventBus eventBus = new SimpleEventBus(); LocalMessageDispatcher dispatcher = new LocalMessageDispatcher(eventBus, ui); ArrayList<MessageEvent> events = new ArrayList<MessageEvent>(); eventBus.addHandler(MessageEvent.class, new CollectingMessageEventHandler(events)); // WHEN Message message = new Message(); message.setType(MessageType.ERROR); message.setSubject("subject"); message.setMessage("message"); dispatcher.messageSent(message); Message clearedMessage = new Message(); clearedMessage.setType(MessageType.ERROR); clearedMessage.setSubject("subject"); clearedMessage.setMessage("cleared message"); dispatcher.messageCleared(clearedMessage); dispatcher.messageRemoved("1"); // THEN assertEquals(3, events.size()); assertEquals("subject", events.get(0).getMessage().getSubject()); assertEquals("cleared message", events.get(1).getMessage().getMessage()); assertEquals("1", events.get(2).getId()); assertTrue(events.get(2).isRemoved()); }
@Test public void sendsEventsEvenIfHandlersFail() throws InterruptedException { // GIVEN EventBus eventBus = new SimpleEventBus(); LocalMessageDispatcher dispatcher = new LocalMessageDispatcher(eventBus, ui); ArrayList<MessageEvent> events = new ArrayList<MessageEvent>(); eventBus.addHandler(MessageEvent.class, new ThrowingMessageEventHandler(events)); eventBus.addHandler(MessageEvent.class, new ThrowingMessageEventHandler(events)); // WHEN Message message = new Message(); message.setType(MessageType.ERROR); message.setSubject("subject"); message.setMessage("message"); dispatcher.messageSent(message); Message clearedMessage = new Message(); clearedMessage.setType(MessageType.ERROR); clearedMessage.setSubject("subject"); clearedMessage.setMessage("cleared message"); dispatcher.messageCleared(clearedMessage); // THEN assertEquals(4, events.size()); assertEquals("subject", events.get(0).getMessage().getSubject()); assertEquals("subject", events.get(1).getMessage().getSubject()); assertEquals("cleared message", events.get(2).getMessage().getMessage()); assertEquals("cleared message", events.get(3).getMessage().getMessage()); }
@Override public void messageSent(MessageEvent event) { final Message message = event.getMessage(); switch (message.getType()) { case WARNING: magnoliaShell.showWarning(message.getId(), message.getSubject(), message.getMessage()); break; case ERROR: magnoliaShell.showError(message.getId(), message.getSubject(), message.getMessage()); break; case INFO: magnoliaShell.showInfo(message.getId(), message.getSubject(), message.getMessage()); default: break; } }
@Override public void messageSent(final Message message) { if (ui.isAttached()) { ui.access(() -> eventBus.fireEvent(new MessageEvent(message, false))); } }
@Override public void messageRemoved(final String id) { if (ui.isAttached()) { ui.access(() -> eventBus.fireEvent(new MessageEvent(id, true))); } } }