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); }
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); }
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); }
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); }
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); }
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); }