@Override public String getTypeString() { return type.getTypeString(); }
public Collection<Integer> resolveEntities(NewRelicApi api, ExternalServiceCondition condition) { IdProvider idProvider = getIdProvider(condition.getType().getTypeString()); return condition.getEntities().stream() .map(e -> idProvider.getId(api, e)) .collect(Collectors.toList()); }
DefaultEntityResolver() { idProviders.put(ConditionType.APM_APP.getTypeString(), new ApplicationIdProvider()); idProviders.put(ConditionType.APM_KEY_TRANSACTION.getTypeString(), new KeyTransactionIdProvider()); idProviders.put(ConditionType.SERVERS_METRIC.getTypeString(), new ServerIdProvider()); idProviders.put(ExternalServiceConditionType.APM.getTypeString(), new ApplicationIdProvider()); idProviders.put(ConditionType.APM_JVM.getTypeString(), new ApplicationIdProvider()); idProviders.put(ConditionType.BROWSER_METRIC.getTypeString(), new ApplicationIdProvider()); uuidProviders.put(SyntheticsCondition.class.getSimpleName(), new SyntheticsMonitorUuidProvider()); }
@Test public void resolveEntities_shouldResolveExternalServiceConditionEntities() { // given ExternalServiceCondition condition = mock(ExternalServiceCondition.class); when(condition.getType()).thenReturn(ExternalServiceConditionType.APM); when(condition.getEntities()).thenReturn(Arrays.asList("e1", "e2")); when(idProviderMock.getId(apiMock, "e1")).thenReturn(1); when(idProviderMock.getId(apiMock, "e2")).thenReturn(2); // when Collection<Integer> ids = testee.resolveEntities(apiMock, condition); // then assertThat(ids).containsExactly(1, 2); verify(testee).getIdProvider(ExternalServiceConditionType.APM.getTypeString()); }
@Test public void defaultInstance_shouldSupportAllExternalServiceCondtionEntities() { for (ExternalServiceConditionType type : ExternalServiceConditionType.values()) { assertCanResolveType(type.getTypeString()); } }
private static AlertsExternalServiceCondition.AlertsExternalServiceConditionBuilder createConditionBuilder() { return AlertsExternalServiceCondition.builder() .type(ExternalServiceConditionType.APM.getTypeString()) .name(CONDITION_NAME) .enabled(ENABLED) .entity(APPLICATION_ENTITY_ID) .metric(METRIC.name().toLowerCase()) .externalServiceUrl(EXTERNAL_SERVICE_URL) .term(Terms.builder() .duration(String.valueOf(TERMS_CONFIGURATION.getDurationTerm().getDuration())) .operator(TERMS_CONFIGURATION.getOperatorTerm().name().toLowerCase()) .priority(TERMS_CONFIGURATION.getPriorityTerm().name().toLowerCase()) .threshold(String.valueOf(TERMS_CONFIGURATION.getThresholdTerm())) .timeFunction(TERMS_CONFIGURATION.getTimeFunctionTerm().name().toLowerCase()) .build() ); } }