public void IgnoresIfAlwaysPassed()
            {
                var utcNow = DateTime.UtcNow;

                var mockTestFailureDurations = new List <DbTestFailureDuration>().ToDbSetMock();

                var mockContext = new Mock <ZigNetEntities>();

                mockContext.Setup(m => m.TestFailureDurations).Returns(mockTestFailureDurations.Object);

                var mockZignetEntitiesWrapper = new Mock <IDbContext>();

                mockZignetEntitiesWrapper.Setup(z => z.Get()).Returns(mockContext.Object);

                var testFailureDurationDto = new TestFailureDurationDto
                {
                    SuiteId      = 2,
                    TestId       = 1,
                    TestResultId = 3
                };

                var testFailureDurationService  = new TestFailureDurationService(mockZignetEntitiesWrapper.Object);
                var savedTestFailureDurationDto = testFailureDurationService.Save(testFailureDurationDto, TestResultType.Pass, utcNow);

                Assert.IsNull(savedTestFailureDurationDto);
            }
            public void IgnoresTestFailedDurationIfSecondFailure()
            {
                var utcNow = DateTime.UtcNow;

                var mockTestFailureDurations = new List <DbTestFailureDuration>
                {
                    new DbTestFailureDuration {
                        TestFailureDurationID = 4,
                        SuiteId              = 2,
                        TestId               = 1,
                        TestResultId         = 3,
                        FailureStartDateTime = utcNow.AddHours(-1)
                    }
                }.ToDbSetMock();

                var mockContext = new Mock <ZigNetEntities>();

                mockContext.Setup(m => m.TestFailureDurations).Returns(mockTestFailureDurations.Object);

                var mockZignetEntitiesWrapper = new Mock <IDbContext>();

                mockZignetEntitiesWrapper.Setup(z => z.Get()).Returns(mockContext.Object);

                var testFailureDurationDto = new TestFailureDurationDto
                {
                    SuiteId      = 2,
                    TestId       = 1,
                    TestResultId = 3
                };

                var testFailureDurationService  = new TestFailureDurationService(mockZignetEntitiesWrapper.Object);
                var savedTestFailureDurationDto = testFailureDurationService.Save(testFailureDurationDto, TestResultType.Fail, utcNow);

                Assert.IsNull(savedTestFailureDurationDto);
            }
            public void CreatesTestFailedDurationIfFirstFailure()
            {
                var utcNow = DateTime.UtcNow;

                var mockTestFailureDurations = new List <DbTestFailureDuration>().ToDbSetMock();

                var mockContext = new Mock <ZigNetEntities>();

                mockContext.Setup(m => m.TestFailureDurations).Returns(mockTestFailureDurations.Object);

                var mockZignetEntitiesWrapper = new Mock <IDbContext>();

                mockZignetEntitiesWrapper.Setup(z => z.Get()).Returns(mockContext.Object);

                var testFailureDurationDto = new TestFailureDurationDto
                {
                    SuiteId      = 2,
                    TestId       = 1,
                    TestResultId = 3
                };

                var testFailureDurationService  = new TestFailureDurationService(mockZignetEntitiesWrapper.Object);
                var savedTestFailureDurationDto = testFailureDurationService.Save(testFailureDurationDto, TestResultType.Fail, utcNow);

                Assert.AreEqual(0, savedTestFailureDurationDto.TestFailureDurationID);
                Assert.AreEqual(2, savedTestFailureDurationDto.SuiteId);
                Assert.AreEqual(1, savedTestFailureDurationDto.TestId);
                Assert.AreEqual(3, savedTestFailureDurationDto.TestResultId);
                Assert.AreEqual(utcNow, savedTestFailureDurationDto.FailureStart);
                Assert.AreEqual(null, savedTestFailureDurationDto.FailureEnd);
            }
            public void UpdatesLatestTestFailureDurationRecord()
            {
                var utcNow = DateTime.UtcNow;

                var mockTestFailureDurations = new List <DbTestFailureDuration>
                {
                    new DbTestFailureDuration {
                        TestFailureDurationID = 5,
                        SuiteId              = 2,
                        TestId               = 1,
                        TestResultId         = 8,
                        FailureStartDateTime = utcNow.AddHours(-10)
                    },
                    new DbTestFailureDuration {
                        TestFailureDurationID = 6,
                        SuiteId              = 2,
                        TestId               = 1,
                        TestResultId         = 9,
                        FailureStartDateTime = utcNow.AddHours(-1)
                    },
                    new DbTestFailureDuration {
                        TestFailureDurationID = 4,
                        SuiteId              = 2,
                        TestId               = 1,
                        TestResultId         = 7,
                        FailureStartDateTime = utcNow.AddHours(-5)
                    }
                }.ToDbSetMock();

                var mockContext = new Mock <ZigNetEntities>();

                mockContext.Setup(m => m.TestFailureDurations).Returns(mockTestFailureDurations.Object);

                var mockZignetEntitiesWrapper = new Mock <IDbContext>();

                mockZignetEntitiesWrapper.Setup(z => z.Get()).Returns(mockContext.Object);

                var testFailureDurationDto = new TestFailureDurationDto
                {
                    SuiteId      = 2,
                    TestId       = 1,
                    TestResultId = 10
                };

                var testFailureDurationService  = new TestFailureDurationService(mockZignetEntitiesWrapper.Object);
                var savedTestFailureDurationDto = testFailureDurationService.Save(testFailureDurationDto, TestResultType.Pass, utcNow);

                Assert.AreEqual(6, savedTestFailureDurationDto.TestFailureDurationID);
                Assert.AreEqual(2, savedTestFailureDurationDto.SuiteId);
                Assert.AreEqual(1, savedTestFailureDurationDto.TestId);
                Assert.AreEqual(10, savedTestFailureDurationDto.TestResultId);
                Assert.AreEqual(utcNow.AddHours(-1), savedTestFailureDurationDto.FailureStart);
                Assert.AreEqual(utcNow, savedTestFailureDurationDto.FailureEnd);
            }
Ejemplo n.º 5
0
        public TestFailureDurationDto Save(TestFailureDurationDto testFailureDurationDto, TestResultType testResultType, DateTime utcNow)
        {
            var latestDbTestFailedDuration = _db.TestFailureDurations
                                             .OrderByDescending(f => f.FailureStartDateTime)
                                             .FirstOrDefault(f =>
                                                             f.SuiteId == testFailureDurationDto.SuiteId &&
                                                             f.TestId == testFailureDurationDto.TestId
                                                             );

            if (testResultType == TestResultType.Pass &&
                latestDbTestFailedDuration != null &&
                latestDbTestFailedDuration.FailureStartDateTime != null && latestDbTestFailedDuration.FailureEndDateTime == null)
            {
                latestDbTestFailedDuration.TestResultId       = testFailureDurationDto.TestResultId;
                latestDbTestFailedDuration.FailureEndDateTime = utcNow;
                SaveTestFailedDuration(latestDbTestFailedDuration);
                return(Map(latestDbTestFailedDuration));
            }
            else if (testResultType == TestResultType.Fail || testResultType == TestResultType.Inconclusive)
            {
                if (latestDbTestFailedDuration == null || latestDbTestFailedDuration.FailureEndDateTime != null)
                {
                    var newDbTestFailedDuration = new DbTestFailureDuration
                    {
                        SuiteId              = testFailureDurationDto.SuiteId,
                        TestId               = testFailureDurationDto.TestId,
                        TestResultId         = testFailureDurationDto.TestResultId,
                        FailureStartDateTime = utcNow
                    };
                    SaveTestFailedDuration(newDbTestFailedDuration);
                    return(Map(newDbTestFailedDuration));
                }
            }

            return(null);
        }