public void MailsPost_OkResult() { //Arrange Mock <IEmailSender> emailSender = new Mock <IEmailSender>(); //Mocking ApplicationContext var options = new DbContextOptionsBuilder <ApplicationContext>() .UseInMemoryDatabase(databaseName: "EmailAPI.MoqDB") .Options; var context = new ApplicationContext(options); var emailPostForm = new EmailPostForm(); emailPostForm.Subject = "test"; emailPostForm.Body = "test"; emailPostForm.Recipients = new[] { "*****@*****.**", "*****@*****.**", "Hi@[email protected]" }; //Act var controller = new MailsController(context, emailSender.Object); //Assert var result = controller.Post(emailPostForm).Result; Assert.IsType <OkResult>(result); }
public async Task <IActionResult> Post([FromBody] EmailPostForm email) { var mapper = new MapperConfiguration(cfg => cfg.CreateMap <EmailPostForm, EmailLog>() .ForMember("Body", opt => opt.MapFrom(c => c.Body)) .ForMember("Subject", opt => opt.MapFrom(c => c.Subject)) .ForMember("Recipients", opt => opt.MapFrom(c => c.Recipients))) .CreateMapper(); Parallel.ForEach(email.Recipients, async recipient => { EmailLog emailLog = mapper.Map <EmailPostForm, EmailLog>(email); emailLog.Recipients = recipient; await _emailSender.EmailSend(emailLog); }); return(Ok()); }