I have a method to send an email. How can I write a unit test to verify this method. I'm using MS test with shouldly
public async Task SendEmail(string Id, string exception)
{
SendEmailModel sendEmailmodel = new SendEmailModel();
var emailAddress = _emailConfiguration.ToEmailAddress;
string[] toAddresses = emailAddress.Split(',', 10, StringSplitOptions.RemoveEmptyEntries);
sendEmailmodel.Subject = "Subject";
sendEmailmodel.ToAddresses = toAddresses;
sendEmailmodel.Message = exception;
await _emailService.SendEmailAsync(sendEmailmodel);
}
I tried writing test method as follows
[TestMethod]
public async Task SendEmail_should_send_email()
{
SendEmailModel sendEmailmodel = new SendEmailModel();
var emailAddress = "kumara@gmail.com";
string[] toAddresses = emailAddress.Split(',', 10, StringSplitOptions.RemoveEmptyEntries);
sendEmailmodel.Subject = "HA test email";
sendEmailmodel.ToAddresses = toAddresses;
sendEmailmodel.Message = "test";
await emailService.SendEmailAsync(sendEmailmodel);
A.CallTo(() => this.emailService.SendEmailAsync(sendEmailmodel));
//how to assert
await this.limitsLogic.SendEmail("120", "test");
}