public async Task WhenCallingGetResourceMetricDefinitionsHappyFlow() { string resourceUri = "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.Storage/storageAccounts/STORAGE_NAME"; var expectedDefinitions = GetMetricDefinitionsList(); var azureResponse = new AzureOperationResponse <IEnumerable <Microsoft.Azure.Management.Monitor.Fluent.Models.MetricDefinition> >() { Body = expectedDefinitions, Request = new HttpRequestMessage(), RequestId = "RequestId", Response = new HttpResponseMessage() }; this.metricDefinitionsOperationsMock.Setup(metric => metric.ListWithHttpMessagesAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <Dictionary <string, List <string> > >(), It.IsAny <CancellationToken>())).ReturnsAsync(azureResponse); this.monitorManagementClientMock.SetupGet(monitorClient => monitorClient.MetricDefinitions).Returns(this.metricDefinitionsOperationsMock.Object); IMetricClient metricClient = new MetricClient(this.tracerMock.Object, this.monitorManagementClientMock.Object); List <MetricDefinition> definitions = (await metricClient.GetResourceMetricDefinitionsAsync(resourceUri, default(CancellationToken))).ToList(); // Validate that right Uri was used this.metricDefinitionsOperationsMock.Verify(metric => metric.ListWithHttpMessagesAsync(resourceUri, null, null, CancellationToken.None)); Assert.AreEqual(definitions.Count, 2, "2 definitions are expected"); }
public async Task WhenCallingGetResourceMetricDefinitionsHappyFlow() { string resourceUri = "/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP_NAME/providers/Microsoft.Storage/storageAccounts/STORAGE_NAME"; var expectedDefinitions = GetMetricDefinitionsList(); var azureResponse = new AzureOperationResponse <IEnumerable <Microsoft.Azure.Management.Monitor.Fluent.Models.MetricDefinition> >() { Body = expectedDefinitions, Request = new HttpRequestMessage(), RequestId = "RequestId", Response = new HttpResponseMessage() }; this.metricDefinitionsOperationsMock.Setup(metric => metric.ListWithHttpMessagesAsync(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <Dictionary <string, List <string> > >(), It.IsAny <CancellationToken>())).ReturnsAsync(azureResponse); this.monitorManagementClientMock.SetupGet(monitorClient => monitorClient.MetricDefinitions).Returns(this.metricDefinitionsOperationsMock.Object); IMetricClient metricClient = new MetricClient(this.tracerMock.Object, this.resourceIdentifier.SubscriptionId, this.monitorManagementClientMock.Object); List <MetricDefinition> definitions = (await metricClient.GetResourceMetricDefinitionsAsync(resourceUri, default(CancellationToken))).ToList(); // Validate that right Uri was used this.metricDefinitionsOperationsMock.Verify(metric => metric.ListWithHttpMessagesAsync(resourceUri, null, null, CancellationToken.None)); Assert.AreEqual(definitions.Count, 2, "2 definitions are expected"); // Validate first metric was converted successfully Assert.AreEqual(expectedDefinitions.Count, definitions.Count, "Definition count isn't correct"); for (int i = 0; i < expectedDefinitions.Count; i++) { Assert.AreEqual(expectedDefinitions[i].Name.Value, definitions[i].Name, "Metric name isn't correct"); Assert.IsTrue(expectedDefinitions[i].MetricAvailabilities.Select(x => Tuple.Create(x.Retention, x.TimeGrain)).SequenceEqual(definitions[i].Availabilities), "Metric availabilities aren't correct"); Assert.IsTrue(expectedDefinitions[i].Dimensions.Select(x => x.Value).SequenceEqual(definitions[i].Dimensions), "Metric dimensions aren't correct"); Assert.AreEqual(expectedDefinitions[i].IsDimensionRequired, definitions[i].IsDimensionRequired, "Metric is dimension required isn't correct"); Assert.AreEqual(expectedDefinitions[i].PrimaryAggregationType?.ToString(), definitions[i].PrimaryAggregationType?.ToString(), "Metric primary aggregation type isn't correct"); Assert.AreEqual(expectedDefinitions[i].Unit?.ToString(), definitions[i].Unit, "Metric unit isn't correct"); } }