public void EqualMetricsAreCombinedIntoSignleAggregatedStatsStructure() { // Arrange var sentTelemetry = new List <ITelemetry>(); var client = this.InitializeTelemetryClient(sentTelemetry); MetricV1 metric1 = null; MetricV1 metric2 = null; using (MetricManagerV1 manager = new MetricManagerV1(client)) { // note: on first go aggregators may be different because manager may // snapshot after first got created but before the second for (int i = 0; i < 2; i++) { metric1 = manager.CreateMetric("Test Metric"); metric2 = manager.CreateMetric("Test Metric"); // Act metric1.Track(10); metric2.Track(5); manager.Flush(); if (sentTelemetry.Count == 1) { break; } else { sentTelemetry.Clear(); } } } // Assert Assert.AreEqual(1, sentTelemetry.Count); var aggregatedMetric = (MetricTelemetry)sentTelemetry.Single(); Assert.AreEqual(2, aggregatedMetric.Count); Assert.AreEqual(15, aggregatedMetric.Sum); }
public void FlushCreatesAggregatedMetricTelemetry() { // Arrange var sentTelemetry = new List <ITelemetry>(); var client = this.InitializeTelemetryClient(sentTelemetry); using (MetricManagerV1 manager = new MetricManagerV1(client)) { MetricV1 metric = manager.CreateMetric("Test Metric"); metric.Track(42); // Act manager.Flush(); // Assert Assert.AreEqual(1, sentTelemetry.Count); var aggregatedMetric = (MetricTelemetry)sentTelemetry.Single(); Assert.IsNotNull(aggregatedMetric); } }