public void Delete_WithCommit_ShouldChangeOperationTypeToInsertAndSetAsDone(
            object entity,
            FakeDataSet<object> dataSet)
        {
            // Act

            dataSet.Delete(entity);
            dataSet.Commit();

            // Assert

            var operation = dataSet.InternalOperations.Single();

            operation.Type.Should().Be(BaseDataSetOperationType.Insert);
            operation.Done.Should().Be.True();
        }
        public void Delete_WithoutCommit_ShouldCreateANewDeleteOperation(
            object entity,
            FakeDataSet<object> dataSet)
        {
            // Act

            dataSet.Delete(entity);

            // Assert

            var operation = dataSet.InternalOperations.Single();

            operation.CurrentEntity.Should().Be.EqualTo(entity);
            operation.Type.Should().Be(BaseDataSetOperationType.Delete);
            operation.Done.Should().Be.False();
        }
        public void Dispose_ShouldDisposeTheEntitiesStoredOnOperations(
            Mock<IDisposable> entity1,
            Mock<IDisposable> entity2,
            FakeDataSet<object> dataSet)
        {
            // Arrange

            dataSet.SetUpGet(entity1.Object);

            dataSet.Update(entity2.Object);
            dataSet.Commit();

            // Act

            dataSet.Dispose();

            // Assert

            entity1.Verify(e => e.Dispose(), Times.Once);
            entity2.Verify(e => e.Dispose(), Times.Once);
        }
        public void Delete_WithCommitAndRollback_ShouldDeleteAfterCommitAndInsertAfterRollback(
            object entity,
            FakeDataSet<object> dataSet)
        {
            // Act

            dataSet.Delete(entity);
            dataSet.Commit();

            // Assert

            dataSet.Inserts.Should().Be(0);
            dataSet.Deletes.Should().Be(1);
            dataSet.Updates.Should().Be(0);

            dataSet.Rollback();

            dataSet.Inserts.Should().Be(1);
            dataSet.Deletes.Should().Be(1);
            dataSet.Updates.Should().Be(0);
        }
Пример #5
0
        public void ShouldReturn2CasesForVPEmail()
        {
            var data = new FakeDataSet()
            {
                T_Case = new List <Case>()
                {
                    new Case()  //quallified case
                    {
                        CaseId        = Guid.NewGuid(),
                        CaseStatus    = (short)CaseStatus.PendingApproval,
                        CurrentTaskId = 2,
                        Task          = new List <Task>()
                        {
                            new Task()
                            {
                                TaskId     = 1,
                                TaskStatus = (short)TaskStatus.FormSubmitted,
                                TaskTypeId = (short)TaskTypeEnum.SAM
                            },

                            new Task()
                            {
                                TaskId     = 2,
                                TaskStatus = (short)TaskStatus.Waiting,
                                TaskTypeId = (short)TaskTypeEnum.PM
                            }
                        }
                    },

                    new Case()  //qualified case
                    {
                        CaseId        = Guid.NewGuid(),
                        CaseStatus    = (short)CaseStatus.PendingApproval,
                        CurrentTaskId = 3,
                        Task          = new List <Task>()
                        {
                            new Task()
                            {
                                TaskId     = 3,
                                TaskStatus = (short)TaskStatus.Waiting,
                                TaskTypeId = (short)TaskTypeEnum.PM
                            }
                        }
                    },

                    new Case()  //disqulified case
                    {
                        CaseId        = Guid.NewGuid(),
                        CaseStatus    = (short)CaseStatus.PendingApproval,
                        CurrentTaskId = 4,
                        Task          = new List <Task>()
                        {
                            new Task()
                            {
                                TaskId     = 3,
                                TaskStatus = (short)TaskStatus.Started,
                                TaskTypeId = (short)TaskTypeEnum.ICE
                            }
                        }
                    },

                    new Case()  //disqulified case
                    {
                        CaseId        = Guid.NewGuid(),
                        CaseStatus    = (short)CaseStatus.InProgressAfterApproval,
                        CurrentTaskId = 5,
                        Task          = new List <Task>()
                        {
                            new Task()
                            {
                                TaskId     = 5,
                                TaskStatus = (short)TaskStatus.Started,
                                TaskTypeId = (short)TaskTypeEnum.Deployment
                            }
                        }
                    }
                }
            };

            var mockContext = MockManager.MockDbContext(data);

            var sut = new BatchJobBF(mockContext.Object);

            var caseList = sut.GetAllCasesForVPEmail();

            Assert.Equal(2, caseList.ToList().Count);

            Assert.Equal((short)CaseStatus.PendingApproval, caseList.ToList()[0].CaseStatus);

            Assert.Equal((short)TaskTypeEnum.PM, caseList.ToList()[0].Task.ToList()[1].TaskTypeId);

            Assert.Equal((short)TaskStatus.Waiting, caseList.ToList()[0].Task.ToList()[1].TaskStatus);

            Assert.Equal((short)TaskTypeEnum.PM, caseList.ToList()[1].Task.ToList()[0].TaskTypeId);

            Assert.Equal((short)TaskStatus.Waiting, caseList.ToList()[1].Task.ToList()[0].TaskStatus);
        }
Пример #6
0
        public void ShouldSendEmailToVPWith2Cases()
        {
            List <Case> caseList = new List <Case>();

            //initialize two cases
            Case case1 = new Case()  //quallified case
            {
                CaseId        = Guid.NewGuid(),
                CaseStatus    = (short)CaseStatus.PendingApproval,
                BizGroupId    = 2, //GAM
                ReferenceNo   = "G1617/0001",
                CurrentTaskId = 2,
                Task          = new List <Task>()
                {
                    new Task()
                    {
                        TaskId     = 1,
                        TaskStatus = (short)TaskStatus.FormSubmitted,
                        TaskTypeId = (short)TaskTypeEnum.SAM
                    },

                    new Task()
                    {
                        TaskId     = 2,
                        TaskStatus = (short)TaskStatus.Waiting,
                        TaskTypeId = (short)TaskTypeEnum.PM
                    }
                }
            };

            caseList.Add(case1);

            Case case2 = new Case()  //quallified case
            {
                CaseId        = Guid.NewGuid(),
                CaseStatus    = (short)CaseStatus.PendingApproval,
                BizGroupId    = 2, //GAM
                ReferenceNo   = "G1617/0002",
                CurrentTaskId = 3,
                Task          = new List <Task>()
                {
                    new Task()
                    {
                        TaskId     = 3,
                        TaskStatus = (short)TaskStatus.Waiting,
                        TaskTypeId = (short)TaskTypeEnum.PM
                    }
                }
            };

            caseList.Add(case2);

            var data = new FakeDataSet()
            {
                T_MailType = new List <MailType>()
                {
                    new MailType()
                    {
                        MailTypeId            = 1,
                        MailTypeGroup         = 1, //MailForFormSubmission
                        MailTypeName          = "CRCI submit form to ICE",
                        SourceTaskTypeId      = 1,
                        DestinationTaskTypeId = 2,
                        IsEmailActivated      = true,
                        EmailSubject          = "",
                        EmailBodyTemplate     = "",
                        MailTypeToUserRole    = new List <MailTypeToUserRole>()
                        {
                            new MailTypeToUserRole()
                            {
                                MailTypeId   = 1,
                                UserRoleId   = 1,
                                MailSendType = 1
                            }
                        }
                    },

                    new MailType()
                    {
                        MailTypeId            = 6,
                        MailTypeGroup         = 11, //MailForConsolidatedCaseToVP
                        MailTypeName          = "Consolidated request list to VP for approval",
                        SourceTaskTypeId      = null,
                        DestinationTaskTypeId = null,
                        IsEmailActivated      = true,
                        EmailSubject          = "WPM – Pending VP Approval",
                        EmailBodyTemplate     = "WPM – Pending VP Approval {0}",
                        MailTypeToUserRole    = new List <MailTypeToUserRole>()
                        {
                            new MailTypeToUserRole()
                            {
                                MailTypeId   = 6,
                                UserRoleId   = 2,
                                MailSendType = 1
                            }
                        }
                    }
                },

                T_User = new List <User>()
                {
                    new User()
                    {
                        UserId          = "GAMVP",
                        UserDisplayName = "GAM VP",
                        Email           = "*****@*****.**",
                        IsDeleted       = false,
                        IsDisabled      = false,
                        UserRoles       = new List <UserRole>()
                        {
                            new UserRole()
                            {
                                UserRoleId = 2
                            }
                        },
                        BizGroup = new List <BizGroup>()
                        {
                            new BizGroup()
                            {
                                BizGroupId = 2  //GAM
                            }
                        }
                    }
                },

                T_SystemParameter = new List <SystemParameter>()
                {
                    new SystemParameter()
                    {
                        SystemParameterId = "SmtpServerAddress",
                        Value             = "10.70.190.52"
                    },

                    new SystemParameter()
                    {
                        SystemParameterId = "SmtpServerPort",
                        Value             = "25"
                    },

                    new SystemParameter()
                    {
                        SystemParameterId = "SenderEmailAddress",
                        Value             = "*****@*****.**"
                    },
                }
            };

            var mockContext = MockManager.MockDbContext(data);

            var sut = new BatchJobBF(mockContext.Object);

            var result = sut.SendConsolidatedEmailToVP(caseList, 2);

            Assert.Equal(true, result);
        }
        public void Update_WithCommit_ShouldSetTheOriginalEntityToOldEntityAndSetAsDone(
            object entity1,
            object entity2,
            FakeDataSet<object> dataSet)
        {
            // Act

            dataSet.SetUpGet(entity1);

            dataSet.Update(entity2);
            dataSet.Commit();

            // Assert

            var operation = dataSet.InternalOperations.Single();

            operation.Type.Should().Be(BaseDataSetOperationType.Update);
            operation.CurrentEntity.Should().Not.Be.Null();
            operation.CurrentEntity.Should().Be.EqualTo(entity1);
            operation.PreviousEntity.Should().Be.EqualTo(entity2);
            operation.Done.Should().Be.True();
        }
        public void Update_WithCommitAndRollback_ShouldCallUpdateTwice(
            object entity,
            FakeDataSet<object> dataSet)
        {
            // Act

            dataSet.Update(entity);
            dataSet.Commit();

            // Assert

            dataSet.Inserts.Should().Be(0);
            dataSet.Deletes.Should().Be(0);
            dataSet.Updates.Should().Be(1);

            dataSet.Rollback();

            dataSet.Inserts.Should().Be(0);
            dataSet.Deletes.Should().Be(0);
            dataSet.Updates.Should().Be(2);

            var operation = dataSet.InternalOperations.Single();

            operation.CurrentEntity.Should().Not.Be.EqualTo(operation.PreviousEntity);
        }
        public void Rollback_WithoutCommit_ShouldNotExecuteAnyOperations(
            object entity,
            FakeDataSet<object> dataSet)
        {
            // Act

            dataSet.Insert(entity);
            dataSet.Delete(entity);
            dataSet.Update(entity);

            dataSet.Rollback();

            // Assert

            dataSet.Inserts.Should().Be(0);
            dataSet.Deletes.Should().Be(0);
            dataSet.Updates.Should().Be(0);
        }
        public void Rollback_PassingDoRollbackFalseInConstructor_ShouldNotRollbackTheOperations(
            object entity)
        {
            // Arrange

            var dataSet = new FakeDataSet<object>(false);

            // Act

            dataSet.Insert(entity);
            dataSet.Delete(entity);
            dataSet.Update(entity);

            dataSet.Commit();
            dataSet.Rollback();

            // Assert

            dataSet.Inserts.Should().Be(1);
            dataSet.Deletes.Should().Be(1);
            dataSet.Updates.Should().Be(1);
        }