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()); }
@Override protected AlertsExternalServiceCondition convertFromConfigItem(ExternalServiceCondition condition) { return AlertsExternalServiceCondition.builder() .type(condition.getTypeString()) .name(condition.getConditionName()) .enabled(condition.isEnabled()) .entities(entityResolver.resolveEntities(api, condition)) .metric(condition.getMetric()) .externalServiceUrl(condition.getExternalServiceUrl()) .runbookUrl(condition.getRunBookUrl()) .terms(TermsUtils.createTerms(condition.getTerms())) .build(); }
@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()); }