Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Metrics Advisor] Enable disabled tests #22348

Merged
merged 3 commits into from
Jun 24, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
import com.azure.ai.metricsadvisor.administration.models.DataFeedGranularityType;
import com.azure.ai.metricsadvisor.administration.models.DataFeedSourceType;
import com.azure.ai.metricsadvisor.administration.models.DataFeedStatus;
import com.azure.ai.metricsadvisor.models.MetricsAdvisorError;
import com.azure.ai.metricsadvisor.models.MetricsAdvisorResponseException;
import com.azure.ai.metricsadvisor.administration.models.ListDataFeedFilter;
import com.azure.ai.metricsadvisor.administration.models.ListDataFeedOptions;
import com.azure.ai.metricsadvisor.models.MetricsAdvisorError;
import com.azure.ai.metricsadvisor.models.MetricsAdvisorResponseException;
import com.azure.core.http.HttpClient;
import com.azure.core.test.TestBase;
import com.azure.core.util.CoreUtils;
Expand Down Expand Up @@ -80,23 +80,27 @@ void testListDataFeed(HttpClient httpClient, MetricsAdvisorServiceVersion servic
client = getMetricsAdvisorAdministrationBuilder(httpClient, serviceVersion).buildAsyncClient();

listDataFeedRunner(inputDataFeedList -> {
DataFeed[] dataFeedList = new DataFeed[2];
dataFeedList[0] = client.createDataFeed(inputDataFeedList.get(0)).block();
dataFeedList[1] = client.createDataFeed(inputDataFeedList.get(1)).block();
List<DataFeed> actualDataFeedList = new ArrayList<>();
List<DataFeed> expectedDataFeedList =
inputDataFeedList.stream().map(dataFeed -> client.createDataFeed(dataFeed).block())
.collect(Collectors.toList());
List<DataFeed> expectedDataFeedList = new ArrayList<>();
expectedDataFeedIdList.set(Arrays.asList(dataFeedList[0].getId(), dataFeedList[1].getId()));

// Act
StepVerifier.create(client.listDataFeeds())
StepVerifier.create(client.listDataFeeds(new ListDataFeedOptions()
.setListDataFeedFilter(new ListDataFeedFilter().setDataFeedGranularityType(DAILY)
.setName("java_"))))
.thenConsumeWhile(actualDataFeedList::add)
.verifyComplete();

expectedDataFeedIdList.set(expectedDataFeedList.stream().map(DataFeed::getId)
.collect(Collectors.toList()));
final List<DataFeed> actualList =
actualDataFeedList.stream().filter(dataFeed -> expectedDataFeedIdList.get().contains(dataFeed.getId()))
.collect(Collectors.toList());
assertNotNull(actualDataFeedList);
final List<DataFeed> actualList = actualDataFeedList.stream()
.filter(dataFeed -> expectedDataFeedIdList.get().contains(dataFeed.getId()))
.collect(Collectors.toList());

// Assert
assertNotNull(actualList);
assertEquals(inputDataFeedList.size(), actualList.size());
expectedDataFeedList.sort(Comparator.comparing(dataFeed -> dataFeed.getSourceType().toString()));
actualList.sort(Comparator.comparing(dataFeed -> dataFeed.getSourceType().toString()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@
import com.azure.ai.metricsadvisor.administration.models.DataFeedSchema;
import com.azure.ai.metricsadvisor.administration.models.DataFeedSourceType;
import com.azure.ai.metricsadvisor.administration.models.DataFeedStatus;
import com.azure.ai.metricsadvisor.models.MetricsAdvisorError;
import com.azure.ai.metricsadvisor.models.MetricsAdvisorResponseException;
import com.azure.ai.metricsadvisor.administration.models.ListDataFeedFilter;
import com.azure.ai.metricsadvisor.administration.models.ListDataFeedOptions;
import com.azure.ai.metricsadvisor.administration.models.PostgreSqlDataFeedSource;
import com.azure.ai.metricsadvisor.models.MetricsAdvisorError;
import com.azure.ai.metricsadvisor.models.MetricsAdvisorResponseException;
import com.azure.core.http.HttpClient;
import com.azure.core.http.rest.PagedResponse;
import com.azure.core.http.rest.Response;
Expand All @@ -24,7 +24,6 @@
import io.netty.handler.codec.http.HttpResponseStatus;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
import reactor.test.StepVerifier;
Expand Down Expand Up @@ -81,7 +80,6 @@ static void afterAll() {
*/
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
@MethodSource("com.azure.ai.metricsadvisor.TestUtils#getTestParameters")
@Disabled
void testListDataFeed(HttpClient httpClient, MetricsAdvisorServiceVersion serviceVersion) {
final AtomicReference<List<String>> expectedDataFeedIdList = new AtomicReference<List<String>>();
try {
Expand All @@ -94,7 +92,10 @@ void testListDataFeed(HttpClient httpClient, MetricsAdvisorServiceVersion servic
.collect(Collectors.toList());

// Act & Assert
client.listDataFeeds().forEach(actualDataFeedList::add);
client.listDataFeeds(new ListDataFeedOptions().setListDataFeedFilter(new ListDataFeedFilter()
.setDataFeedGranularityType(DAILY)
.setName("java_")), Context.NONE)
.forEach(actualDataFeedList::add);

expectedDataFeedIdList.set(expectedDataFeedList.stream()
.map(DataFeed::getId)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
import reactor.test.StepVerifier;
Expand Down Expand Up @@ -107,55 +106,13 @@ void testListMetricFeedback(HttpClient httpClient, MetricsAdvisorServiceVersion
});
}

/**
* Verifies the result of the list metric feedback method to return only 3 results using
* {@link ListMetricFeedbackOptions#setMaxPageSize(int)}.
*/
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
@MethodSource("com.azure.ai.metricsadvisor.TestUtils#getTestParameters")
@Disabled
void testListMetricFeedbackTop3(HttpClient httpClient, MetricsAdvisorServiceVersion serviceVersion) {
// Arrange
client = getMetricsAdvisorBuilder(httpClient, serviceVersion).buildAsyncClient();

// Act & Assert
StepVerifier.create(client.listFeedback(METRIC_ID, new ListMetricFeedbackOptions().setMaxPageSize(3)).byPage())
.thenConsumeWhile(metricFeedbackPagedResponse -> 3 >= metricFeedbackPagedResponse.getValue().size())
// page size should be less than or equal to 3
.verifyComplete();
}

// /**
// * Verifies the result of the list metric feedback method using skip options.
// */
// TODO (savaity) Need a better way of testing Skip
// @ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
// @MethodSource("com.azure.ai.metricsadvisor.TestUtils#getTestParameters")
// void testListMetricFeedbackSkip(HttpClient httpClient, MetricsAdvisorServiceVersion serviceVersion) {
// // Arrange
// client = getMetricsAdvisorBuilder(httpClient, serviceVersion).buildAsyncClient();
// final ArrayList<MetricFeedback> actualMetricFeedbackList = new ArrayList<>();
// final ArrayList<MetricFeedback> expectedList = new ArrayList<>();
//
// StepVerifier.create(client.listFeedback())
// .thenConsumeWhile(expectedList::add)
// .verifyComplete();
//
// // Act & Assert
// StepVerifier.create(client.listFeedback(new ListMetricFeedbackOptions().setSkip(3)))
// .thenConsumeWhile(actualMetricFeedbackList::add)
// .verifyComplete();
//
// assertEquals(expectedList.size() - 3, actualMetricFeedbackList.size());
// }

/**
* Verifies the result of the list metric feedback method to filter results using
* {@link ListMetricFeedbackFilter#setDimensionFilter(DimensionKey)}.
*/
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
@MethodSource("com.azure.ai.metricsadvisor.TestUtils#getTestParameters")
@Disabled
void testListMetricFeedbackFilterByDimensionFilter(HttpClient httpClient, MetricsAdvisorServiceVersion serviceVersion) {
// Arrange
client = getMetricsAdvisorBuilder(httpClient, serviceVersion).buildAsyncClient();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,12 @@
import com.azure.ai.metricsadvisor.models.ListMetricFeedbackOptions;
import com.azure.ai.metricsadvisor.models.MetricFeedback;
import com.azure.core.http.HttpClient;
import com.azure.core.http.rest.PagedResponse;
import com.azure.core.http.rest.Response;
import com.azure.core.util.Context;
import io.netty.handler.codec.http.HttpResponseStatus;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
import reactor.test.StepVerifier;
Expand Down Expand Up @@ -103,66 +102,31 @@ void testListMetricFeedback(HttpClient httpClient, MetricsAdvisorServiceVersion
});
}

/**
* Verifies the result of the list metric feedback method to return only 3 results using
* {@link ListMetricFeedbackOptions#setMaxPageSize(int)}.
*/
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
@MethodSource("com.azure.ai.metricsadvisor.TestUtils#getTestParameters")
@Disabled
void testListMetricFeedbackTop3(HttpClient httpClient, MetricsAdvisorServiceVersion serviceVersion) {
// Arrange
client = getMetricsAdvisorBuilder(httpClient, serviceVersion).buildClient();

// Act & Assert
for (PagedResponse<MetricFeedback> metricFeedbackPagedResponse
: client.listFeedback(METRIC_ID, new ListMetricFeedbackOptions().setMaxPageSize(3), Context.NONE)
.iterableByPage()) {
assertTrue(3 >= metricFeedbackPagedResponse.getValue().size());
}
}

/**
* Verifies the result of the list metric feedback method using skip and top options.
*/
// TODO (savaity) Need concrete list results for testing skip
// @ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
// @MethodSource("com.azure.ai.metricsadvisor.TestUtils#getTestParameters")
// void testListMetricFeedbackSkip(HttpClient httpClient, MetricsAdvisorServiceVersion serviceVersion) {
// // Arrange
// client = getMetricsAdvisorBuilder(httpClient, serviceVersion).buildClient();
// final ArrayList<MetricFeedback> actualMetricFeedbackList = new ArrayList<>();
// final ArrayList<MetricFeedback> expectedList = new ArrayList<>();
//
// client.listFeedback().stream().iterator().forEachRemaining(expectedList::add);
//
// // Act & Assert
// client.listFeedback(new ListMetricFeedbackOptions().setSkip(3), Context.NONE)
// .stream().iterator().forEachRemaining(actualMetricFeedbackList::add);
//
// assertEquals(expectedList.size() - 3, actualMetricFeedbackList.size());
// }

/**
* Verifies the result of the list metric feedback method to filter results using
* {@link ListMetricFeedbackFilter#setDimensionFilter(DimensionKey)}.
*/
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
@MethodSource("com.azure.ai.metricsadvisor.TestUtils#getTestParameters")
@Disabled
void testListMetricFeedbackFilterByDimensionFilter(HttpClient httpClient,
MetricsAdvisorServiceVersion serviceVersion) {
// Arrange
client = getMetricsAdvisorBuilder(httpClient, serviceVersion).buildClient();
creatMetricFeedbackRunner(inputMetricFeedback -> {
MetricFeedback createdFeedback = client.addFeedback(METRIC_ID, inputMetricFeedback
.setDimensionFilter(new DimensionKey(DIMENSION_FILTER)));

// Act & Assert
client.listFeedback(METRIC_ID, new ListMetricFeedbackOptions()
.setFilter(new ListMetricFeedbackFilter()
.setDimensionFilter(new DimensionKey(DIMENSION_FILTER))).setMaxPageSize(10),
Assertions.assertNotNull(createdFeedback.getId());
client.listFeedback(METRIC_ID, new ListMetricFeedbackOptions().setFilter(new ListMetricFeedbackFilter()
.setDimensionFilter(new DimensionKey(DIMENSION_FILTER)))
.setMaxPageSize(10),
Context.NONE)
.stream().iterator()
.stream()
.iterator()
.forEachRemaining(metricFeedback ->
metricFeedback.getDimensionFilter().asMap().keySet().stream().anyMatch(DIMENSION_FILTER::containsKey));
metricFeedback.getDimensionFilter().asMap().keySet().stream()
.anyMatch(DIMENSION_FILTER::containsKey));
}, ANOMALY);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,6 @@ protected void beforeTest() {
@Test
abstract void testListMetricFeedback(HttpClient httpClient, MetricsAdvisorServiceVersion serviceVersion);

@Test
abstract void testListMetricFeedbackTop3(HttpClient httpClient, MetricsAdvisorServiceVersion serviceVersion);

@Test
abstract void testListMetricFeedbackFilterStartTime(HttpClient httpClient,
MetricsAdvisorServiceVersion serviceVersion);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,14 @@
package com.azure.ai.metricsadvisor;

import com.azure.ai.metricsadvisor.administration.MetricsAdvisorAdministrationAsyncClient;
import com.azure.ai.metricsadvisor.administration.models.NotificationHook;
import com.azure.ai.metricsadvisor.administration.models.ListHookOptions;
import com.azure.ai.metricsadvisor.administration.models.NotificationHook;
import com.azure.core.http.HttpClient;
import com.azure.core.http.rest.PagedResponse;
import com.azure.core.test.TestBase;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
import reactor.core.publisher.Mono;
Expand Down Expand Up @@ -83,10 +82,8 @@ void createWebHook(HttpClient httpClient, MetricsAdvisorServiceVersion serviceVe
.verifyComplete();
}

// Track this with https://github.com/Azure/azure-sdk-for-java/issues/16932
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
@MethodSource("com.azure.ai.metricsadvisor.TestUtils#getTestParameters")
@Disabled
void testListHook(HttpClient httpClient, MetricsAdvisorServiceVersion serviceVersion) {
MetricsAdvisorAdministrationAsyncClient client
= getMetricsAdvisorAdministrationBuilder(httpClient, serviceVersion).buildAsyncClient();
Expand All @@ -107,14 +104,16 @@ void testListHook(HttpClient httpClient, MetricsAdvisorServiceVersion serviceVer
Assertions.assertNotNull(hookId[1]);

List<NotificationHook> notificationHookList = new ArrayList<>();
StepVerifier.create(client.listHooks())
StepVerifier.create(client.listHooks(new ListHookOptions().setHookNameFilter("java_test")))
.thenConsumeWhile(notificationHookList::add)
.verifyComplete();

assertListHookOutput(notificationHookList);

List<PagedResponse<NotificationHook>> hookPageList = new ArrayList<>();
StepVerifier.create(client.listHooks(new ListHookOptions().setMaxPageSize(ListHookInput.INSTANCE.pageSize)).byPage())
StepVerifier.create(client.listHooks(new ListHookOptions()
.setHookNameFilter("java_test")
.setMaxPageSize(ListHookInput.INSTANCE.pageSize)).byPage())
.thenConsumeWhile(hookPageList::add)
.verifyComplete();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,14 @@
package com.azure.ai.metricsadvisor;

import com.azure.ai.metricsadvisor.administration.MetricsAdvisorAdministrationClient;
import com.azure.ai.metricsadvisor.administration.models.NotificationHook;
import com.azure.ai.metricsadvisor.administration.models.ListHookOptions;
import com.azure.ai.metricsadvisor.administration.models.NotificationHook;
import com.azure.core.http.HttpClient;
import com.azure.core.http.rest.PagedResponse;
import com.azure.core.util.Context;
import org.junit.jupiter.api.AfterAll;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
import reactor.test.StepVerifier;
Expand Down Expand Up @@ -61,10 +60,8 @@ void createWebHook(HttpClient httpClient, MetricsAdvisorServiceVersion serviceVe
client.deleteHook(createdNotificationHook.getId());
}

// Track this with https://github.com/Azure/azure-sdk-for-java/issues/16932
@ParameterizedTest(name = DISPLAY_NAME_WITH_ARGUMENTS)
@MethodSource("com.azure.ai.metricsadvisor.TestUtils#getTestParameters")
@Disabled
void testListHook(HttpClient httpClient, MetricsAdvisorServiceVersion serviceVersion) {
MetricsAdvisorAdministrationClient client
= getMetricsAdvisorAdministrationBuilder(httpClient, serviceVersion).buildClient();
Expand All @@ -79,14 +76,17 @@ void testListHook(HttpClient httpClient, MetricsAdvisorServiceVersion serviceVer
Assertions.assertNotNull(hookId[0]);
Assertions.assertNotNull(hookId[1]);

List<NotificationHook> notificationHookList = client.listHooks()
List<NotificationHook> notificationHookList = client.listHooks(new ListHookOptions()
.setHookNameFilter("java_test"), Context.NONE)
.stream()
.collect(Collectors.toList());

assertListHookOutput(notificationHookList);

List<PagedResponse<NotificationHook>> hookPageList
= client.listHooks(new ListHookOptions().setMaxPageSize(ListHookInput.INSTANCE.pageSize), Context.NONE)
= client.listHooks(new ListHookOptions()
.setHookNameFilter("java_test")
.setMaxPageSize(ListHookInput.INSTANCE.pageSize), Context.NONE)
.streamByPage()
.collect(Collectors.toList());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,17 +104,16 @@ protected void assertCreateWebHookOutput(NotificationHook notificationHook) {

protected static class ListHookInput {
static final ListHookInput INSTANCE = new ListHookInput();
EmailNotificationHook emailHook = new EmailNotificationHook(UUID.randomUUID().toString())
EmailNotificationHook emailHook = new EmailNotificationHook("java_test_" + UUID.randomUUID().toString())
.setEmailsToAlert(new ArrayList<String>() {{
add("[email protected]");
}});
WebNotificationHook webHook = new WebNotificationHook(UUID.randomUUID().toString(),
WebNotificationHook webHook = new WebNotificationHook("java_test_" + UUID.randomUUID().toString(),
"https://httpbin.org/post");
int pageSize = 1;
}

protected void assertListHookOutput(List<NotificationHook> hooksList) {
Assertions.assertTrue(hooksList.size() >= 2);
if (getTestMode() == TestMode.PLAYBACK) {
// assert random generated hook names only when hitting real service.
return;
Expand All @@ -139,7 +138,6 @@ protected void assertListHookOutput(List<NotificationHook> hooksList) {
}

protected void assertPagedListHookOutput(List<PagedResponse<NotificationHook>> hookPageList) {
Assertions.assertTrue(hookPageList.size() >= 2);
int cnt = 0;
for (PagedResponse<NotificationHook> hookPage : hookPageList) {
Assertions.assertNotNull(hookPage.getValue());
Expand Down
Loading