示例#1
0
        public void Call_send_mail_given_an_approval_state_changed_message_with_data_collection_in_submitted_state()
        {
            var handler = new NotifyApprovalStateChangedHandler(_mailer, _approvalStateChangedRepository, _urdmsUserService);

            _approvalStateChangedRepository
            .Get(Arg.Is(1))
            .Returns(new ApprovalStateChangedEmailData {
                DataCollectionTitle = "Test", ProjectTitle = "Test Project", Manager = "Paul McTest"
            });
            var urdmsUser = GetUrdmsUser("XX12343", "John", "Doe");

            _urdmsUserService.GetUser(Arg.Is(urdmsUser.UserId)).Returns(urdmsUser);

            Test.Handler(handler)
            .OnMessage <NotifyApprovalStateChanged>(m =>
            {
                m.ApprovalState    = DataCollectionApprovalState.Submitted.ToString();
                m.DataCollectionId = 1;
                m.Approver         = urdmsUser.UserId;
            });

            _mailer.Received().SendEmail(Arg.Any <ApprovalStateChangedEmail>(), "ApprovalStateChangedSubmitted");
            _approvalStateChangedRepository.Received().Get(Arg.Is(1));
        }