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)); }