/** * Synchronizes configurations (see {@link Configurator#setApplicationConfigurations(Collection)} * and {@link Configurator#setPolicyConfigurations(Collection)}) */ public void sync() { for (ApplicationConfiguration applicationConfiguration : applicationConfigurations) { applicationConfigurator.sync(applicationConfiguration); } for (PolicyConfiguration configuration : policyConfigurations) { policyConfigurator.sync(configuration); conditionConfigurator.sync(configuration); externalServiceConditionConfigurator.sync(configuration); nrqlConditionConfigurator.sync(configuration); syntheticsConditionConfigurator.sync(configuration); channelConfigurator.sync(configuration); } }
@Test public void shouldCorrectlyCreateUserDefinedCondition() throws Exception { //given when(alertsConditionsApiMock.list(POLICY.getId())).thenReturn(ImmutableList.of()); when(alertsConditionsApiMock.create(eq(POLICY.getId()), any(AlertsCondition.class))).thenReturn(AlertsCondition.builder().build()); //when testee.sync(CONFIGURATION); //then verify(alertsConditionsApiMock).create(eq(POLICY.getId()), alertsConditionCaptor.capture()); AlertsCondition result = alertsConditionCaptor.getValue(); assertThat(result.getType()).isEqualTo("apm_jvm_metric"); assertThat(result.getName()).isEqualTo(CONDITION_NAME); assertThat(result.getEnabled()).isEqualTo(true); assertThat(result.getEntities()).containsExactly(APPLICATION_ENTITY_ID); assertThat(result.getMetric()).isEqualTo("gc_cpu_time"); assertThat(result.getGcMetric()).isEqualTo("GC/PS MarkSweep"); assertThat(result.getTerms()) .extracting("duration", "operator", "priority", "threshold", "timeFunction") .containsExactly(new Tuple("5", "above", "critical", "85.0", "all")); }
@Test public void shouldCorrectlyCreateBrowserCondition() throws Exception { //given when(alertsConditionsApiMock.list(POLICY.getId())).thenReturn(ImmutableList.of()); when(alertsConditionsApiMock.create(eq(POLICY.getId()), any(AlertsCondition.class))).thenReturn(AlertsCondition.builder().build()); //when testee.sync(CONFIGURATION); //then verify(alertsConditionsApiMock).create(eq(POLICY.getId()), alertsConditionCaptor.capture()); AlertsCondition result = alertsConditionCaptor.getValue(); assertThat(result.getType()).isEqualTo("browser_metric"); assertThat(result.getName()).isEqualTo(CONDITION_NAME); assertThat(result.getEnabled()).isEqualTo(true); assertThat(result.getEntities()).containsExactly(APPLICATION_ENTITY_ID); assertThat(result.getMetric()).isEqualTo("page_views_with_js_errors"); assertThat(result.getTerms()) .extracting("duration", "operator", "priority", "threshold", "timeFunction") .containsExactly(new Tuple("10", "above", "warning", "1.0", "any")); }
@Test public void shouldCorrectlyCreateUserDefinedCondition() throws Exception { //given when(alertsConditionsApiMock.list(POLICY.getId())).thenReturn(ImmutableList.of()); when(alertsConditionsApiMock.create(eq(POLICY.getId()), any(AlertsCondition.class))).thenReturn(AlertsCondition.builder().build()); //when testee.sync(CONFIGURATION); //then verify(alertsConditionsApiMock).create(eq(POLICY.getId()), alertsConditionCaptor.capture()); AlertsCondition result = alertsConditionCaptor.getValue(); assertThat(result.getConditionScope()).isEqualTo("application"); assertThat(result.getType()).isEqualTo("apm_app_metric"); assertThat(result.getName()).isEqualTo(CONDITION_NAME); assertThat(result.getEnabled()).isEqualTo(true); assertThat(result.getEntities()).containsExactly(APPLICATION_ENTITY_ID); assertThat(result.getMetric()).isEqualTo("user_defined"); assertThat(result.getTerms()) .extracting("duration", "operator", "priority", "threshold", "timeFunction") .containsExactly(new Tuple("5", "above", "critical", "0.5", "all")); assertThat(result.getUserDefined().getMetric()).isEqualTo(METRIC); assertThat(result.getUserDefined().getValueFunction()).isEqualTo("average"); }
@Test public void shouldSynchronizeAllConfigurationsForPolicy_whenFullPolicyConfiguration() { // given testee.setPolicyConfigurations(ImmutableList.of(policyConfigurationMock)); // when testee.sync(); // then InOrder order = inOrder(applicationConfiguratorMock, policyConfiguratorMock, conditionConfiguratorMock, externalServiceConditionConfiguratorMock, nrqlConditionConfiguratorMock, syntheticsConditionConfiguratorMock, channelConfiguratorMock); order.verify(policyConfiguratorMock).sync(policyConfigurationMock); order.verify(conditionConfiguratorMock).sync(policyConfigurationMock); order.verify(externalServiceConditionConfiguratorMock).sync(policyConfigurationMock); order.verify(nrqlConditionConfiguratorMock).sync(policyConfigurationMock); order.verify(syntheticsConditionConfiguratorMock).sync(policyConfigurationMock); order.verify(channelConfiguratorMock).sync(policyConfigurationMock); order.verifyNoMoreInteractions(); } }