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);
                }
            }
        }
예제 #6
0
 public AppMetric QueryMetric(AppMetricId metricId)
 {
     return(mMetrics.QueryMetric(metricId));
 }