/** * Handle the {@link AbstractAlertingDefinitionEvent}. * * @param event * the received {@link AbstractAlertingDefinitionEvent} */ private void updatedAlertingDefinition(AbstractAlertingDefinitionEvent event) { Iterator<AlertingState> iterator = alertingStates.iterator(); while (iterator.hasNext()) { AlertingState state = iterator.next(); if (Objects.equals(state.getAlertingDefinition().getId(), event.getFirst().getId())) { state.setAlertingDefinition(event.getFirst()); if (null != state.getAlert()) { state.getAlert().setAlertingDefinition(event.getFirst()); } break; } } } }
@Test public void updateEventAlertActive() { alertingScheduler.onApplicationEvent(new AlertingDefinitionCreatedEvent(this, definitionOne)); AbstractAlertingDefinitionEvent event = new AlertingDefinitionUpdateEvent(this, definitionOne); when(definitionOne.getId()).thenReturn("id"); Alert alertMock = mock(Alert.class); // set manually because it would done by the threshold checker which is also mocked getAlertingStates().get(0).setAlert(alertMock); alertingScheduler.onApplicationEvent(event); verify(alertMock, times(1)).setAlertingDefinition(definitionOne); verify(definitionOne, times(2)).getId(); verifyNoMoreInteractions(definitionOne); verifyZeroInteractions(thresholdChecker, executorService); assertThat(getAlertingStates(), hasSize(1)); }