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

                var mockLatestTestResults = new List<DbLatestTestResult> {
                    new DbLatestTestResult { LatestTestResultID = 5, SuiteId = 2, TestId = 7 }
                }.ToDbSetMock();

                var mockContext = new Mock<ZigNetEntities>();
                mockContext.Setup(m => m.LatestTestResults).Returns(mockLatestTestResults.Object);

                var mockZignetEntitiesWrapper = new Mock<IDbContext>();
                mockZignetEntitiesWrapper.Setup(z => z.Get()).Returns(mockContext.Object);

                var latestTestResultDto = new LatestTestResultDto
                {
                    TestResultID = 4,
                    SuiteId = 2,
                    TestId = 1,
                    TestName = "existing test",
                    SuiteName = "suite-name"
                };

                var latestTestResultsService = new LatestTestResultService(mockZignetEntitiesWrapper.Object);
                var savedLatestTestResultDto = latestTestResultsService.Save(latestTestResultDto, TestResultType.Fail, utcNow);

                Assert.AreEqual(2, savedLatestTestResultDto.SuiteId);
                Assert.AreEqual(1, savedLatestTestResultDto.TestId);
                Assert.AreEqual("existing test", savedLatestTestResultDto.TestName);
                Assert.AreEqual("suite-name", savedLatestTestResultDto.SuiteName);
                Assert.AreEqual(4, savedLatestTestResultDto.TestResultID);
                Assert.AreEqual(utcNow, savedLatestTestResultDto.FailingFromDate);
                Assert.AreEqual(null, savedLatestTestResultDto.PassingFromDate);
                Assert.AreEqual(0, savedLatestTestResultDto.LatestTestResultID);
            }
Exemplo n.º 2
0
        public LatestTestResultDto Save(LatestTestResultDto latestTestResultDto, TestResultType testResultType, DateTime utcNow)
        {
            var dbLatestTestResult = _db.LatestTestResults
                                     .SingleOrDefault(t =>
                                                      t.SuiteId == latestTestResultDto.SuiteId &&
                                                      t.TestId == latestTestResultDto.TestId
                                                      );

            var suiteNameChanged = false;

            if (dbLatestTestResult == null)
            {
                dbLatestTestResult = new DbLatestTestResult
                {
                    SuiteId   = latestTestResultDto.SuiteId,
                    TestId    = latestTestResultDto.TestId,
                    TestName  = latestTestResultDto.TestName,
                    SuiteName = latestTestResultDto.SuiteName
                }
            }
            ;
            else if (dbLatestTestResult.SuiteName != latestTestResultDto.SuiteName)
            {
                dbLatestTestResult.SuiteName = latestTestResultDto.SuiteName;
                suiteNameChanged             = true;
            }

            if (testResultType == TestResultType.Pass && dbLatestTestResult.PassingFromDateTime == null)
            {
                dbLatestTestResult.TestResultId        = latestTestResultDto.TestResultID;
                dbLatestTestResult.PassingFromDateTime = utcNow;
                dbLatestTestResult.FailingFromDateTime = null;
                SaveLatestTestResult(dbLatestTestResult);
            }
            else if ((testResultType == TestResultType.Fail || testResultType == TestResultType.Inconclusive) &&
                     dbLatestTestResult.FailingFromDateTime == null)
            {
                dbLatestTestResult.TestResultId        = latestTestResultDto.TestResultID;
                dbLatestTestResult.FailingFromDateTime = utcNow;
                dbLatestTestResult.PassingFromDateTime = null;
                SaveLatestTestResult(dbLatestTestResult);
            }
            else if (suiteNameChanged)
            {
                SaveLatestTestResult(dbLatestTestResult);
            }

            // todo: move to mapping class
            return(new LatestTestResultDto
            {
                LatestTestResultID = dbLatestTestResult.LatestTestResultID,
                TestResultID = dbLatestTestResult.TestResultId,
                SuiteId = dbLatestTestResult.SuiteId,
                TestId = dbLatestTestResult.TestId,
                TestName = dbLatestTestResult.TestName,
                SuiteName = dbLatestTestResult.SuiteName,
                PassingFromDate = dbLatestTestResult.PassingFromDateTime,
                FailingFromDate = dbLatestTestResult.FailingFromDateTime
            });
        }