コード例 #1
0
        public void CheckCascadeConditionSkipSendingNotReadyForNextLevel(Assignment assignment, Mock <IUnitOfWork> unitOfWork, Mock <IAssignmentCascadeNotifier> assignmentNotifier, Mock <IMailCascadeNotifier> mailNotifier, Mock <ISmsCascadeNotifier> smsNotifier, CascadeService cascadeService)
        {
            SetOrderForCascadeLevels(assignment);
            assignment.Cascade.SetCurrentLevel(1);
            assignment.Cascade.Levels.First(x => x.OrderNumber == 1).TriggeredAt = null;
            unitOfWork.Setup(x => x.Assignments.FindMany(It.IsAny <Expression <Func <Assignment, bool> > >())).Returns(new [] { assignment }).Verifiable();

            cascadeService.CheckCascadeCondition();

            unitOfWork.Verify();
            assignmentNotifier.Verify(x => x.Notify(It.IsAny <string>(), It.IsAny <Workplace>()), Times.Never());
            mailNotifier.Verify(x => x.Notify(It.IsAny <string>(), It.IsAny <string>()), Times.Never());
            smsNotifier.Verify(x => x.Notify(It.IsAny <string>(), It.IsAny <string>()), Times.Never());
        }
コード例 #2
0
        public void CheckCascadeConditionSendsAssignmentNotificationToHeadOfStructuralUnit(Assignment assignment, Workplace head, StructuralUnit structuralUnit, Mock <IUnitOfWork> unitOfWork,
                                                                                           Mock <IAssignmentCascadeNotifier> assignmentNotifier,
                                                                                           Mock <IStructuralUnitService> structuralUnitService, CascadeService cascadeService)
        {
            SetOrderForCascadeLevels(assignment);
            SetOverdueResponsible(assignment);
            structuralUnit.HeadWorkplace = head;
            assignment.Cascade.SetCurrentLevel(0);
            assignment.Cascade.Levels.First().NotificationTypes = NotificationTypes.Assignment;
            assignment.Cascade.Levels.First().HeadLevel         = 1;
            unitOfWork.Setup(x => x.Assignments.FindMany(It.IsAny <Expression <Func <Assignment, bool> > >())).Returns(new[] { assignment }).Verifiable();
            structuralUnitService.Setup(x => x.GetForWorkplace(It.IsAny <Workplace>())).Returns(structuralUnit).Verifiable();
            structuralUnitService.Setup(x => x.GetHeadOfLevel(structuralUnit, It.IsAny <int>())).Returns(structuralUnit.HeadWorkplace).Verifiable();
            assignmentNotifier.Setup(x => x.Notify(It.IsAny <string>(), head)).Verifiable();

            cascadeService.CheckCascadeCondition();

            unitOfWork.Verify();
            assignmentNotifier.Verify(x => x.Notify(It.IsAny <string>(), head), Times.Once());
        }
コード例 #3
0
        public void CheckCascadeConditionSkipSendingWithNoOverdueAssignments(Mock <IUnitOfWork> unitOfWork, Mock <IAssignmentCascadeNotifier> assignmentNotifier, Mock <IMailCascadeNotifier> mailNotifier, Mock <ISmsCascadeNotifier> smsNotifier, CascadeService cascadeService)
        {
            unitOfWork.Setup(x => x.Assignments.FindMany(It.IsAny <Expression <Func <Assignment, bool> > >())).Returns(new List <Assignment>()).Verifiable();

            cascadeService.CheckCascadeCondition();

            unitOfWork.Verify();
            assignmentNotifier.Verify(x => x.Notify(It.IsAny <string>(), It.IsAny <Workplace>()), Times.Never());
            mailNotifier.Verify(x => x.Notify(It.IsAny <string>(), It.IsAny <string>()), Times.Never());
            smsNotifier.Verify(x => x.Notify(It.IsAny <string>(), It.IsAny <string>()), Times.Never());
        }
コード例 #4
0
        public void CheckCascadeConditionSendsAssignmentNotification(Assignment assignment, Mock <IUnitOfWork> unitOfWork, Mock <IAssignmentCascadeNotifier> assignmentNotifier, CascadeService cascadeService)
        {
            SetOrderForCascadeLevels(assignment);
            assignment.Cascade.SetCurrentLevel(0);
            assignment.Cascade.Levels.First().NotificationTypes = NotificationTypes.Assignment;
            assignment.Cascade.Levels.First().HeadLevel         = 0;
            var cascadeResponsible = assignment.Cascade.Levels.First().Responsible;

            unitOfWork.Setup(x => x.Assignments.FindMany(It.IsAny <Expression <Func <Assignment, bool> > >())).Returns(new[] { assignment }).Verifiable();
            assignmentNotifier.Setup(x => x.Notify(It.IsAny <string>(), cascadeResponsible)).Verifiable();

            cascadeService.CheckCascadeCondition();

            unitOfWork.Verify();
            assignmentNotifier.Verify(x => x.Notify(It.IsAny <string>(), cascadeResponsible), Times.Once());
            assignment.Cascade.CurrentLevelNumber.Should().Be(1);
        }