public async Task SendAsync_should_send_mail_to_the_destination() { const string? @from = "*****@*****.**"; const string? to = "*****@*****.**"; const string? subject = "my test e-mail"; const string? content = "<h1>Test e-mail</h1>"; _sendgridClient.SendEmailAsync(Arg.Any <SendGridMessage>(), Arg.Any <CancellationToken>()) .Returns(new Response(HttpStatusCode.Accepted, null, null)); var message = _mockCreator.GetSendGridMessage(from, to, subject, content); var sent = await _sender.SendAsync(message, CancellationToken.None); sent.Should().BeTrue(); await _sendgridClient.Received(1) .SendEmailAsync(Arg.Any <SendGridMessage>(), Arg.Any <CancellationToken>()); var messageSent = (SendGridMessage)_sendgridClient.ReceivedCalls().Single().GetArguments()[0] !; messageSent.From.Email.Should().Be(from); messageSent.Personalizations.Single().Tos.Single().Email.Should().Be(to); messageSent.Personalizations.Single().Subject.Should().Be(subject); messageSent.Contents.Should().AllSatisfy(c => c.Value.Should().Be(content)); }
public async Task SendEmailAsync_CallsSendEmailAsync_WhenMessageIsValid() { var mailMessage = new MailMessage { ToEmails = new List <string> { "ToEmails" }, BccEmails = new List <string> { "BccEmails" }, Subject = "Subject", HtmlContent = "HtmlContent", TextContent = "TextContent", Category = "Category" }; _sendGridClient.SendEmailAsync(Arg.Any <SendGridMessage>()).Returns( new Response(System.Net.HttpStatusCode.OK, null, null)); await _sut.SendEmailAsync(mailMessage); await _sendGridClient.Received(1).SendEmailAsync( Arg.Do <SendGridMessage>(msg => { msg.Received(1).AddTos(new List <EmailAddress> { new EmailAddress(mailMessage.ToEmails.First()) }); msg.Received(1).AddBccs(new List <EmailAddress> { new EmailAddress(mailMessage.ToEmails.First()) }); Assert.Equal(mailMessage.Subject, msg.Subject); Assert.Equal(mailMessage.HtmlContent, msg.HtmlContent); Assert.Equal(mailMessage.TextContent, msg.PlainTextContent); Assert.Contains("type:Cateogry", msg.Categories); Assert.Contains(msg.Categories, x => x.StartsWith("env:")); Assert.Contains(msg.Categories, x => x.StartsWith("sender:")); msg.Received(1).SetClickTracking(false, false); msg.Received(1).SetOpenTracking(false); })); }