Example #1
0
        public async Task Test_CanWrite_DisjointSets(int nSets)
        {
            PostgreSqlAppMetricsMonitorWriter writer =
                GetWriter();

            List <AppMetric> allMetrics =
                GenerateAppMetricsForBuiltInAppMetricIds();

            List <List <AppMetric> > writeMetricLists = allMetrics
                                                        .Batch(nSets, s => s.ToList())
                                                        .ToList();

            List <AppMetric> expectedMetrics =
                new List <AppMetric>();

            foreach (List <AppMetric> writeList in writeMetricLists)
            {
                await writer.WriteAsync(writeList);

                expectedMetrics.AddRange(writeList);
            }

            List <AppMetric> dbMetrics =
                await GetDbAppMetricsAsync();

            CollectionAssert.AreEquivalent(expectedMetrics,
                                           dbMetrics);
        }
Example #2
0
        public async Task Test_CanWriteEmptyData_NoInitialAppMetrics()
        {
            PostgreSqlAppMetricsMonitorWriter writer = GetWriter();
            List <AppMetric> noMetrics = new List <AppMetric>();

            await writer.WriteAsync(noMetrics);

            List <AppMetric> dbMetrics =
                await GetDbAppMetricsAsync();

            CollectionAssert.AreEquivalent(noMetrics,
                                           dbMetrics);
        }
Example #3
0
        public async Task Test_CanWrite_NoInitialAppMetrics_AllBuiltInAppMetricIds()
        {
            PostgreSqlAppMetricsMonitorWriter writer =
                GetWriter();
            List <AppMetric> metrics =
                GenerateAppMetricsForBuiltInAppMetricIds();

            await writer.WriteAsync(metrics);

            List <AppMetric> dbMetrics =
                await GetDbAppMetricsAsync();

            CollectionAssert.AreEquivalent(metrics,
                                           dbMetrics);
        }
Example #4
0
        public async Task Test_CanWrite_AllZeroValues_WithInitialAppMetrics()
        {
            await GenerateAppMetricsInDbForBuiltInAppMetricIdsAsync(allZeroValues : true);

            PostgreSqlAppMetricsMonitorWriter writer =
                GetWriter();
            List <AppMetric> metrics =
                GenerateAllZeroAppMetricsForBuiltInAppMetricIds();

            await writer.WriteAsync(metrics);

            List <AppMetric> dbMetrics =
                await GetDbAppMetricsAsync();

            CollectionAssert.AreEquivalent(metrics,
                                           dbMetrics);

            AssertAppMetricsAreAllZero(dbMetrics);
        }
Example #5
0
        public async Task Test_CanWriteEmptyData_WithInitialAppMetrics()
        {
            await GenerateAppMetricsInDbForBuiltInAppMetricIdsAsync(allZeroValues : false);

            List <AppMetric> expectedDbMetrics =
                await GetDbAppMetricsAsync();

            PostgreSqlAppMetricsMonitorWriter writer =
                GetWriter();

            List <AppMetric> noMetrics =
                new List <AppMetric>();

            await writer.WriteAsync(noMetrics);

            List <AppMetric> dbMetrics =
                await GetDbAppMetricsAsync();

            CollectionAssert.AreEquivalent(expectedDbMetrics,
                                           dbMetrics);
        }
Example #6
0
        public async Task Test_CanWrite_PartiallyIntersectedSets(int nSets)
        {
            PostgreSqlAppMetricsMonitorWriter writer =
                GetWriter();

            List <AppMetric> allMetrics =
                GenerateAppMetricsForBuiltInAppMetricIds();

            List <List <AppMetric> > writeMetricLists = InterleaveAppMetricLists(allMetrics
                                                                                 .Batch(nSets, s => s.ToList())
                                                                                 .ToList());

            List <AppMetric> expectedMetrics =
                new List <AppMetric>();

            foreach (List <AppMetric> writeList in writeMetricLists)
            {
                await writer.WriteAsync(writeList);

                foreach (AppMetric wMetric in writeList)
                {
                    int indexOfWMetric = expectedMetrics.FindIndex(m => m.Id.Equals(wMetric.Id));
                    if (indexOfWMetric >= 0)
                    {
                        expectedMetrics[indexOfWMetric] = wMetric;
                    }
                    else
                    {
                        expectedMetrics.Add(wMetric);
                    }
                }
            }

            List <AppMetric> dbMetrics =
                await GetDbAppMetricsAsync();

            CollectionAssert.AreEquivalent(expectedMetrics,
                                           dbMetrics);
        }