public void SendEmailAsyncShouldPutCommandOnBus()
        {
            const string emailRecipient = "*****@*****.**";
            const string emailSubject = "test subject";
            const string emailMessage = "test message body";

            var bus = MockIMediator();
            var messageSender = new AuthMessageSender(bus.Object);
            messageSender.SendEmailAsync(emailRecipient, emailSubject, emailMessage);
            bus.Verify(mock => mock.Send(It.IsAny<IRequest>()), Times.Exactly(1));
        }
        public void SendEmailAsyncShouldPutCommandOnBus()
        {
            const string emailRecipient = "*****@*****.**";
            const string emailSubject = "test subject";
            const string emailMessage = "test message body";

            var bus = MockIMediator();
            var messageSender = new AuthMessageSender(bus.Object);
            messageSender.SendEmailAsync(emailRecipient, emailSubject, emailMessage);

            bus.Verify(mock => mock.Send(
                It.Is<NotifyVolunteersCommand>(request =>
                request.ViewModel.EmailMessage == emailMessage
                && request.ViewModel.EmailRecipients.SequenceEqual(new List<string> {emailRecipient})
                && request.ViewModel.HtmlMessage == emailMessage
                && request.ViewModel.Subject == emailSubject)),
                Times.Exactly(1));
        }
        public async Task SendNotifyVolunteersCommandWhenInvokingSendEmailAsync()
        {
            const string emailRecipient = "*****@*****.**";
            const string emailSubject = "test subject";
            const string emailMessage = "test message body";

            var mediator = MockIMediator();
            var messageSender = new AuthMessageSender(mediator.Object, Mock.Of<IQueueStorageService>());
            await messageSender.SendEmailAsync(emailRecipient, emailSubject, emailMessage);

            mediator.Verify(mock => mock.SendAsync(
                It.Is<NotifyVolunteersCommand>(request =>
                request.ViewModel.EmailMessage == emailMessage
                && request.ViewModel.EmailRecipients.SequenceEqual(new List<string> { emailRecipient })
                && request.ViewModel.HtmlMessage == emailMessage
                && request.ViewModel.Subject == emailSubject)),
                Times.Exactly(1));
        }