private void Assert_AppMetricsCollection_CorrectlyInitialized(IEnumerable <AppMetric> expectedMetrics, AppMetricsCollection metrics) { IEnumerable <AppMetricId> actualMetricIds = metrics .ExportedMetrics; Assert.AreEqual(expectedMetrics.Count(), actualMetricIds.Count()); foreach (AppMetric expectedMetric in expectedMetrics) { CollectionAssert.Contains(actualMetricIds, expectedMetric.Id); } foreach (AppMetric m in expectedMetrics) { AppMetric metric = metrics.QueryMetric(m.Id); Assert.NotNull(metric); Assert.AreEqual(m.Value, metric.Value); } Assert.AreEqual(expectedMetrics.Count(), metrics .CollectMetrics() .Count()); }
public void Test_CanUpdateMetric_Add(int times) { Faker faker = new Faker(); AppMetricId[] targetMetricIds = AppMetricId .BuiltInAppMetricIds .ToArray(); long expectedTotal = 0; AppMetricsCollection metrics = new AppMetricsCollection(targetMetricIds); for (int i = 0; i < times; i++) { long randomValToAdd = faker.Random.Long(0, 100000); foreach (AppMetricId metricId in targetMetricIds) { metrics.UpdateMetric(metricId, m => m.Add(randomValToAdd)); } expectedTotal += randomValToAdd; } foreach (AppMetricId metricId in targetMetricIds) { Assert.AreEqual(expectedTotal, metrics.QueryMetric(metricId).Value); } }
public void Test_CanUpdateMetric_Decrement(int times) { Faker faker = new Faker(); AppMetricId[] targetMetricIds = AppMetricId .BuiltInAppMetricIds .ToArray(); long initialValue = times * faker.Random .Long(1, 100000); AppMetricsCollection metrics = new AppMetricsCollection(targetMetricIds .Select(mId => new AppMetric(mId, initialValue)) .ToArray()); for (int i = 0; i < times; i++) { foreach (AppMetricId metricId in targetMetricIds) { metrics.UpdateMetric(metricId, m => m.Decrement()); } } foreach (AppMetricId metricId in targetMetricIds) { Assert.AreEqual(initialValue - times, metrics.QueryMetric(metricId).Value); } }
public void Test_CanUpdateMetric_Increment(int times) { AppMetricId[] targetMetricIds = AppMetricId .BuiltInAppMetricIds .ToArray(); AppMetricsCollection metrics = new AppMetricsCollection(targetMetricIds); for (int i = 0; i < times; i++) { foreach (AppMetricId metricId in targetMetricIds) { metrics.UpdateMetric(metricId, m => m.Increment()); } } foreach (AppMetricId metricId in targetMetricIds) { Assert.AreEqual(times, metrics.QueryMetric(metricId).Value); } }
public void Test_CanUpdateMetric_ReplaceValue(int times) { Faker faker = new Faker(); AppMetricId[] targetMetricIds = AppMetricId .BuiltInAppMetricIds .ToArray(); AppMetricsCollection metrics = new AppMetricsCollection(targetMetricIds); for (int i = 0; i < times; i++) { foreach (AppMetricId metricId in targetMetricIds) { long randomNewVal = faker.Random.Long(); metrics.UpdateMetric(metricId, m => m.Update(randomNewVal)); Assert.AreEqual(randomNewVal, metrics .QueryMetric(metricId) .Value); } } }
public AppMetric QueryMetric(AppMetricId metricId) { return(mMetrics.QueryMetric(metricId)); }