public async Task SetUp()
        {
            connectionFactory = TestUtilities.GetIntegrationConnectionFactory();

            var hourRepo   = new HourRepository(connectionFactory);
            var metricRepo = new MetricRepository(connectionFactory);
            var hour       = await hourRepo.CreateAsync(new Hour { HourTimeStamp = DateTime.Now });

            var metric = await metricRepo.CreateAsync(new Metric { HourId = hour.Id, MetricType = MetricType.WebUptime });

            var metricDataRepo = new MetricDataRepository(connectionFactory);

            metricData = await metricDataRepo.CreateAsync(new MetricData { MetricId = metric.Id, Score = 100.0m });

            var repo = new AuditAnalysisRepository(connectionFactory);
            await repo.CreateAsync(Enumerable.Range(0, 4).Select(i =>
                                                                 new AuditAnalysis
            {
                MetricDataId = metricData.Id,
                TotalQueries = 123,
                TotalLongRunningQueries = 234,
                TotalComplexQueries = 345,
                UserId = 456
            }).ToList());

            auditAnalyses = await repo.ReadByMetricData(metricData);
        }
        public async Task MetricData_ZDeleteAsync_Success()
        {
            //Arrange
            var repo = new MetricDataRepository(ConnectionFactorySetup.ConnectionFactory);

            //Act
            await repo.DeleteAsync(metricData);

            //Assert
            var readResult = await repo.ReadAsync(metricData.Id);

            Assert.That(readResult, Is.Null);
        }
        public async Task MetricData_ReadByCategoryScoreAsync_Success()
        {
            //Arrange
            var repo = new MetricDataRepository(ConnectionFactorySetup.ConnectionFactory);
            var categoryScoreRepo = new CategoryScoreRepository(ConnectionFactorySetup.ConnectionFactory);
            var categoryRepo      = new CategoryRepository(ConnectionFactorySetup.ConnectionFactory);
            var category          = await categoryRepo.CreateAsync(new Category { HourId = hour.Id, CategoryType = CategoryType.Uptime });

            var categoryScore = await categoryScoreRepo.CreateAsync(new CategoryScore { CategoryId = category.Id, Category = category });

            //Act
            var result = await repo.ReadByCategoryScoreAsync(categoryScore);

            //Assert
            Assert.That(result.Any(r => r.Id == metricData.Id), Is.True);
        }