public void CanSendMailByModel()
        {
            var mailTransportMock = new Mock <IMailTransport>();
            var project           = new LocationExpandingFileRazorProject(new[] { new DefaultLocationExpander() }, null,
                                                                          ApplicationHelper.GetMailViewPath(), ".cshtml");
            var engine = new RazorLightEngineBuilder()
                         .UseProject(project)
                         .UseMemoryCachingProvider()
                         .Build();
            var mailService = new TestMailKitSmtpMailService(MailKitSmtpMailServiceTest.GetTestMailServiceOptions(),
                                                             mailTransportMock.Object);
            var templateService = new RazorLightTemplatingService(engine, new MailTemplateOptions(), null);
            var service         = new TemplatingMailService(mailService, templateService);

            var model = new Test();
            var body  = templateService.Parse(model);

            service.SendMail(model, GlobalTestSettings.SmtpRecipientMail, GlobalTestSettings.SmtpRecipientName);
            mailTransportMock.VerifySendMail(GlobalTestSettings.SmtpServer, GlobalTestSettings.SmtpPort,
                                             GlobalTestSettings.SmtpSenderName, GlobalTestSettings.SmtpSenderMail,
                                             GlobalTestSettings.SmtpRecipientName, GlobalTestSettings.SmtpRecipientMail,
                                             GlobalTestSettings.MailSubject, body);
        }
 public void ThrowsOnMissingTemplatingService()
 {
     var unused = new TemplatingMailService(new Mock <IMailService>().Object, null);
 }