/** * {@inheritDoc} */ @Override public void run() { try { List<IAgentMessage<?>> messages = fetchMessages(); if (CollectionUtils.isNotEmpty(messages)) { AgentMessagesReceivedEvent event = new AgentMessagesReceivedEvent(this, messages); eventPublisher.publishEvent(event); } } catch (Exception e) { if (log.isWarnEnabled()) { log.warn("An unexpected exception ocurred.", e); } } }
@Test public void successful() { messageFetcher.postConstruct(); verify(executorService).scheduleAtFixedRate(messageFetcher, 30L, 30L, TimeUnit.SECONDS); verifyNoMoreInteractions(executorService); } }
@Test public void notConnected() { when(connection.isConnected()).thenReturn(false); messageFetcher.run(); verify(connection).isConnected(); verifyNoMoreInteractions(connection); verifyZeroInteractions(eventPublisher, platformManager); } }
@Test @SuppressWarnings("unchecked") public void unexpectedException() throws Exception { when(connection.isConnected()).thenReturn(true); when(platformManager.getPlatformId()).thenReturn(10L); when(connection.fetchAgentMessages(any(Long.class))).thenThrow(RuntimeException.class); messageFetcher.run(); verify(connection).isConnected(); verify(connection).fetchAgentMessages(any(Long.class)); verify(platformManager).getPlatformId(); verifyNoMoreInteractions(connection, platformManager); verifyZeroInteractions(eventPublisher); }
@Test @SuppressWarnings("unchecked") public void serverUnavailable() throws Exception { when(connection.isConnected()).thenReturn(true); when(platformManager.getPlatformId()).thenReturn(10L); when(connection.fetchAgentMessages(any(Long.class))).thenThrow(ServerUnavailableException.class); messageFetcher.run(); verify(connection).isConnected(); verify(connection).fetchAgentMessages(any(Long.class)); verify(platformManager).getPlatformId(); verifyNoMoreInteractions(connection, platformManager); verifyZeroInteractions(eventPublisher); }
@Test @SuppressWarnings("unchecked") public void successfulNoMessages() throws Exception { when(connection.isConnected()).thenReturn(true); when(platformManager.getPlatformId()).thenReturn(10L); when(connection.fetchAgentMessages(10L)).thenReturn(Collections.EMPTY_LIST); messageFetcher.run(); verify(connection).isConnected(); verify(connection).fetchAgentMessages(10L); verify(platformManager).getPlatformId(); verifyNoMoreInteractions(connection, platformManager); verifyZeroInteractions(eventPublisher); }
@Test public void successful() throws Exception { when(connection.isConnected()).thenReturn(true); when(platformManager.getPlatformId()).thenReturn(10L); List<IAgentMessage<?>> messages = Arrays.<IAgentMessage<?>> asList(mock(IAgentMessage.class)); when(connection.fetchAgentMessages(10L)).thenReturn(messages); messageFetcher.run(); verify(connection).isConnected(); verify(connection).fetchAgentMessages(10L); verify(platformManager).getPlatformId(); ArgumentCaptor<AgentMessagesReceivedEvent> eventCaptor = ArgumentCaptor.forClass(AgentMessagesReceivedEvent.class); verify(eventPublisher).publishEvent(eventCaptor.capture()); verifyNoMoreInteractions(connection, eventPublisher, platformManager); assertThat(eventCaptor.getValue().getAgentMessages(), is(equalTo(messages))); }