public Collection<Integer> resolveEntities(NewRelicApi api, Condition condition) { IdProvider idProvider = getIdProvider(condition.getType().getTypeString()); return condition.getEntities().stream() .map(e -> idProvider.getId(api, e)) .collect(Collectors.toList()); }
@Test public void resolveEntities_shouldResolveConditionEntities() { // given Condition condition = mock(Condition.class); when(condition.getType()).thenReturn(ConditionType.APM_KEY_TRANSACTION); 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(ConditionType.APM_KEY_TRANSACTION.getTypeString()); }
@Override protected AlertsCondition convertFromConfigItem(Condition condition) { return AlertsCondition.builder() .type(condition.getType().getTypeString()) .name(condition.getConditionName()) .enabled(condition.isEnabled()) .entities(entityResolver.resolveEntities(api, condition)) .metric(condition.getMetricAsString()) .conditionScope(condition.getConditionScopeAsString()) .runbookUrl(condition.getRunBookUrl()) .terms(TermsUtils.createTerms(condition.getTerms())) .violationCloseTimer(condition.getViolationCloseTimerAsString()) .userDefined(UserDefinedUtils.createUserDefined(condition.getUserDefinedMetric())) .gcMetric(condition.getGcMetricAsString()) .build(); }