use of io.gravitee.rest.api.model.alert.UpdateAlertTriggerEntity in project gravitee-management-rest-api by gravitee-io.
the class AlertMapperTest method convertAlertInputToUpdateAlertTriggerEntityResponseTime.
@Test
public void convertAlertInputToUpdateAlertTriggerEntityResponseTime() {
final AlertInput alertInput = new AlertInput();
alertInput.setEnabled(true);
alertInput.setResponseTime(35);
alertInput.setDuration(10);
alertInput.setTimeUnit(AlertTimeUnit.MINUTES);
alertInput.setType(AlertType.RESPONSE_TIME);
final UpdateAlertTriggerEntity actual = alertMapper.convertToUpdate(alertInput);
assertThat(actual.isEnabled()).isEqualTo(alertInput.getEnabled());
final AggregationCondition aggregationCondition = (AggregationCondition) actual.getConditions().get(0);
assertThat(aggregationCondition.getDuration()).isEqualTo(alertInput.getDuration().longValue());
assertThat(aggregationCondition.getTimeUnit()).isEqualTo(TimeUnit.MINUTES);
assertThat(aggregationCondition.getThreshold()).isEqualTo(alertInput.getResponseTime().doubleValue());
}
use of io.gravitee.rest.api.model.alert.UpdateAlertTriggerEntity in project gravitee-management-rest-api by gravitee-io.
the class AlertMapperTest method convertAlertInputToUpdateAlertTriggerEntityStatus2xx.
@Test
public void convertAlertInputToUpdateAlertTriggerEntityStatus2xx() {
final AlertInput alertInput = new AlertInput();
alertInput.setEnabled(true);
alertInput.setStatusCode("2xx");
alertInput.setStatusPercent(20);
alertInput.setDuration(10);
alertInput.setTimeUnit(AlertTimeUnit.MINUTES);
alertInput.setType(AlertType.STATUS);
final UpdateAlertTriggerEntity actual = alertMapper.convertToUpdate(alertInput);
assertThat(actual.isEnabled()).isEqualTo(alertInput.getEnabled());
final RateCondition rateCondition = (RateCondition) actual.getConditions().get(0);
assertThat(rateCondition.getDuration()).isEqualTo(alertInput.getDuration().longValue());
assertThat(rateCondition.getTimeUnit()).isEqualTo(TimeUnit.MINUTES);
assertThat(rateCondition.getThreshold()).isEqualTo(alertInput.getStatusPercent().doubleValue());
final ThresholdRangeCondition condition = (ThresholdRangeCondition) rateCondition.getComparison();
assertThat(condition.getProperty()).isEqualTo("response.status");
assertThat(condition.getThresholdLow()).isEqualTo(200D);
assertThat(condition.getThresholdHigh()).isEqualTo(299D);
}
use of io.gravitee.rest.api.model.alert.UpdateAlertTriggerEntity in project gravitee-management-rest-api by gravitee-io.
the class AlertMapperTest method convertAlertInputToUpdateAlertTriggerEntityStatus200.
@Test
public void convertAlertInputToUpdateAlertTriggerEntityStatus200() {
final AlertInput alertInput = new AlertInput();
alertInput.setEnabled(true);
alertInput.setStatusCode("200");
alertInput.setStatusPercent(20);
alertInput.setDuration(10);
alertInput.setTimeUnit(AlertTimeUnit.MINUTES);
alertInput.setType(AlertType.STATUS);
final UpdateAlertTriggerEntity actual = alertMapper.convertToUpdate(alertInput);
assertThat(actual.isEnabled()).isEqualTo(alertInput.getEnabled());
final RateCondition rateCondition = (RateCondition) actual.getConditions().get(0);
assertThat(rateCondition.getDuration()).isEqualTo(alertInput.getDuration().longValue());
assertThat(rateCondition.getTimeUnit()).isEqualTo(TimeUnit.MINUTES);
assertThat(rateCondition.getThreshold()).isEqualTo(alertInput.getStatusPercent().doubleValue());
final ThresholdRangeCondition condition = (ThresholdRangeCondition) rateCondition.getComparison();
assertThat(condition.getProperty()).isEqualTo("response.status");
assertThat(condition.getThresholdLow()).isEqualTo(200D);
assertThat(condition.getThresholdHigh()).isEqualTo(200D);
}
use of io.gravitee.rest.api.model.alert.UpdateAlertTriggerEntity in project gravitee-management-rest-api by gravitee-io.
the class ApplicationAlertServiceTest method shouldHandleNotificationTemplateUpdatedEventResponseTimeAlert.
@Test
public void shouldHandleNotificationTemplateUpdatedEventResponseTimeAlert() throws Exception {
NotificationTemplateEntity notificationTemplate = new NotificationTemplateEntity();
notificationTemplate.setHook(AlertHook.CONSUMER_RESPONSE_TIME.name());
notificationTemplate.setTitle("notification-template-title");
notificationTemplate.setContent("notification-template-content");
NotificationTemplateEvent notificationTemplateEvent = new NotificationTemplateEvent("org-id", notificationTemplate);
final SimpleEvent<ApplicationAlertEventType, Object> event = new SimpleEvent<>(ApplicationAlertEventType.NOTIFICATION_TEMPLATE_UPDATE, notificationTemplateEvent);
ApplicationListItem app1 = new ApplicationListItem();
app1.setId("app1");
ApplicationListItem app2 = new ApplicationListItem();
app2.setId("app2");
when(applicationService.findByOrganization("org-id")).thenReturn(new HashSet<>(Arrays.asList(app1, app2)));
final AlertTriggerEntity alertTrigger = mock(AlertTriggerEntity.class);
when(alertTrigger.getType()).thenReturn("METRICS_AGGREGATION");
when(alertService.findByReferenceAndReferenceIds(AlertReferenceType.APPLICATION, Arrays.asList("app1", "app2"))).thenReturn(Collections.singletonList(alertTrigger));
Notification notification = new Notification();
notification.setType("default-email");
notification.setConfiguration("");
when(alertTrigger.getNotifications()).thenReturn(Collections.singletonList(notification));
JsonNode emailNode = JsonNodeFactory.instance.objectNode().put("to", "to").put("from", "from").put("subject", "subject").put("body", "body");
when(mapper.readTree(notification.getConfiguration())).thenReturn(emailNode);
cut.handleEvent(event);
ArgumentCaptor<UpdateAlertTriggerEntity> updatingCaptor = ArgumentCaptor.forClass(UpdateAlertTriggerEntity.class);
verify(alertService, times(1)).update(updatingCaptor.capture());
final UpdateAlertTriggerEntity updating = updatingCaptor.getValue();
assertThat(updating.getNotifications().get(0).getConfiguration()).contains("notification-template-content");
assertThat(updating.getNotifications().get(0).getConfiguration()).contains("notification-template-title");
}
use of io.gravitee.rest.api.model.alert.UpdateAlertTriggerEntity in project gravitee-management-rest-api by gravitee-io.
the class ApplicationAlertServiceTest method shouldUpdate.
@Test
public void shouldUpdate() throws Exception {
final AlertTriggerEntity alertTrigger = mock(AlertTriggerEntity.class);
when(alertService.findById(ALERT_ID)).thenReturn(alertTrigger);
UpdateAlertTriggerEntity updating = new UpdateAlertTriggerEntity();
updating.setId(ALERT_ID);
cut.update(APPLICATION_ID, updating);
verify(alertService, times(1)).update(updating);
}
Aggregations