public void CanGetMetricQueryResult() { var metadata = new Dictionary <string, string> { { "metadatatest1", "metadatatest2" } }; var metricValue = MonitorQueryModelFactory.MetricValue(new DateTimeOffset(new DateTime(10))); var metricValueList = new List <MetricValue>() { metricValue }; MetricTimeSeriesElement metricTimeSeriesElement = MonitorQueryModelFactory.MetricTimeSeriesElement(metadata, metricValueList); Assert.IsNotNull(metricTimeSeriesElement); Assert.AreEqual(1, metricTimeSeriesElement.Metadata.Count); var firstElement = metricTimeSeriesElement.Metadata.First(); Assert.AreEqual("metadatatest1", firstElement.Key); Assert.AreEqual("metadatatest2", firstElement.Value); Assert.AreEqual(1, metricTimeSeriesElement.Values.Count); Assert.AreEqual(new DateTimeOffset(new DateTime(10)), metricTimeSeriesElement.Values[0].TimeStamp); IEnumerable <MetricTimeSeriesElement> metricTimeSeriesElements = new[] { metricTimeSeriesElement }; MetricUnit metricUnit = new MetricUnit("test"); Assert.IsNotNull(metricUnit); Assert.AreEqual("test", metricUnit.ToString()); MetricResult metricResult = MonitorQueryModelFactory.MetricResult("https://management.azure.gov", "type", "name", metricUnit, metricTimeSeriesElements); Assert.IsNotNull(metricResult); Assert.AreEqual(null, metricResult.Description); Assert.AreEqual(null, metricResult.Error.Code); Assert.AreEqual(null, metricResult.Error.Message); Assert.AreEqual("https://management.azure.gov", metricResult.Id); Assert.AreEqual("name", metricResult.Name); Assert.AreEqual("type", metricResult.ResourceType); Assert.AreEqual(1, metricResult.TimeSeries.Count); Assert.AreEqual("test", metricResult.Unit.ToString()); IEnumerable <MetricResult> metricResults = new[] { metricResult }; MetricsQueryResult metricsQueryResult = MonitorQueryModelFactory.MetricsQueryResult(null, TimeSpan.FromMinutes(3).ToString(), null, "namespace", "eastus", metricResults.ToList()); Assert.AreEqual(null, metricsQueryResult.Cost); Assert.AreEqual(null, metricsQueryResult.Granularity); Assert.AreEqual(1, metricsQueryResult.Metrics.Count); Assert.AreEqual(null, metricsQueryResult.Metrics[0].Description); Assert.AreEqual(null, metricsQueryResult.Metrics[0].Error.Code); Assert.AreEqual(null, metricsQueryResult.Metrics[0].Error.Message); Assert.AreEqual("https://management.azure.gov", metricsQueryResult.Metrics[0].Id); Assert.AreEqual("name", metricsQueryResult.Metrics[0].Name); Assert.AreEqual("type", metricsQueryResult.Metrics[0].ResourceType); Assert.AreEqual("namespace", metricsQueryResult.Namespace); Assert.AreEqual("eastus", metricsQueryResult.ResourceRegion); Assert.IsNotNull(metricsQueryResult); }
public async Task <Response <MetricsQueryResult> > ListAsync(string resourceUri, string timespan = null, TimeSpan?interval = null, string metricnames = null, string aggregation = null, int?top = null, string orderby = null, string filter = null, ResultType?resultType = null, string metricnamespace = null, CancellationToken cancellationToken = default) { if (resourceUri == null) { throw new ArgumentNullException(nameof(resourceUri)); } using var message = CreateListRequest(resourceUri, timespan, interval, metricnames, aggregation, top, orderby, filter, resultType, metricnamespace); await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); switch (message.Response.Status) { case 200: { MetricsQueryResult value = default; using var document = await JsonDocument.ParseAsync(message.Response.ContentStream, default, cancellationToken).ConfigureAwait(false); value = MetricsQueryResult.DeserializeMetricsQueryResult(document.RootElement); return(Response.FromValue(value, message.Response)); }