public void GenerateEmail_WhenModelWithResume_AttachesResumeToEmail() { var razorEngine = new Mock <IRazorLightEngine>().Object; var attachmentGenerator = new Mock <IGenerateEmailAttachment>(); attachmentGenerator.Setup(m => m.GenerateCsvEmailAttachment(It.IsAny <List <KeyValuePair <string, string> > >(), It.IsAny <string>())) .Returns(new EmailAttachment { Data = null, Filename = "Practice Transitions.csv" }); var fixture = new Fixture(); var mailSettings = fixture .Build <BencoEmailMessageSettings>() .Create(); var mockMailSettingsOptions = new Mock <IOptions <BencoEmailMessageSettings> >(); mockMailSettingsOptions.Setup(m => m.Value).Returns(mailSettings); var model = fixture.Build <InquireModel>() .Without(m => m.ContactNumber) .With(m => m.Resume, new EmailAttachment { Data = new MemoryStream(), Filename = "Resume.pdf" }) .Create(); var sut = new JobListingInquireEmailGenerator(razorEngine, attachmentGenerator.Object, mockMailSettingsOptions.Object); var request = sut.GenerateEmail(model); var resume = request.Attachments.Single(a => a.Filename == "Resume.pdf"); Assert.NotNull(resume); Assert.Equal("Resume.pdf", resume.Filename); Assert.NotNull(resume.Data); }
public void CanCreateJobListingInquireEmailGenerator() { var attachmentGenerator = new Mock <IGenerateEmailAttachment>().Object; var razorEngine = new Mock <IRazorLightEngine>().Object; var fixture = new Fixture(); var mailSettings = fixture .Build <BencoEmailMessageSettings>() .Create(); var mockMailSettingsOptions = new Mock <IOptions <BencoEmailMessageSettings> >(); mockMailSettingsOptions.Setup(m => m.Value).Returns(mailSettings); // ReSharper disable once UnusedVariable var sut = new JobListingInquireEmailGenerator(razorEngine, attachmentGenerator, mockMailSettingsOptions.Object); }
public void Generate_WhenPassedModelIsNotOfTypeInquireModel_ThrowsArgumentException() { var razorEngine = new Mock <IRazorLightEngine>().Object; var attachmentGenerator = new Mock <IGenerateEmailAttachment>().Object; var fixture = new Fixture(); var mailSettings = fixture .Build <BencoEmailMessageSettings>() .Create(); var mockMailSettingsOptions = new Mock <IOptions <BencoEmailMessageSettings> >(); mockMailSettingsOptions.Setup(m => m.Value).Returns(mailSettings); var sut = new JobListingInquireEmailGenerator(razorEngine, attachmentGenerator, mockMailSettingsOptions.Object); Assert.Throws <ArgumentException>(() => sut.GenerateEmail(new SellPracticeModel())); }
public void GenerateEmail_WhenPassedModelIsOfTypeInquireModel_Succeeds() { var razorEngine = new Mock <IRazorLightEngine>().Object; var attachmentGenerator = new Mock <IGenerateEmailAttachment>().Object; var fixture = new Fixture(); var mailSettings = fixture .Build <BencoEmailMessageSettings>() .Create(); var mockMailSettingsOptions = new Mock <IOptions <BencoEmailMessageSettings> >(); mockMailSettingsOptions.Setup(m => m.Value).Returns(mailSettings); var sut = new JobListingInquireEmailGenerator(razorEngine, attachmentGenerator, mockMailSettingsOptions.Object); Assert.NotNull(sut.GenerateEmail(new InquireModel())); }
public void CanGenerateEmailFromModel_WhenPassedModelThatIsNotOfTypeInquireModel_ReturnsFalse() { var razorEngine = new Mock <IRazorLightEngine>().Object; var attachmentGenerator = new Mock <IGenerateEmailAttachment>().Object; var fixture = new Fixture(); var mailSettings = fixture .Build <BencoEmailMessageSettings>() .Create(); var mockMailSettingsOptions = new Mock <IOptions <BencoEmailMessageSettings> >(); mockMailSettingsOptions.Setup(m => m.Value).Returns(mailSettings); var sut = new JobListingInquireEmailGenerator(razorEngine, attachmentGenerator, mockMailSettingsOptions.Object); Assert.False(sut.CanGenerateEmailFromModel(new SellPracticeModel())); }
public void GenerateEmail_WhenPassedValidModel_CreatesAttachment() { var razorEngine = new Mock <IRazorLightEngine>().Object; var attachmentGenerator = new Mock <IGenerateEmailAttachment>(); attachmentGenerator.Setup(m => m.GenerateCsvEmailAttachment(It.IsAny <List <KeyValuePair <string, string> > >(), It.IsAny <string>())) .Returns(new EmailAttachment { Data = null, Filename = "Practice Transitions.csv" }); var fixture = new Fixture(); var mailSettings = fixture .Build <BencoEmailMessageSettings>() .Create(); var mockMailSettingsOptions = new Mock <IOptions <BencoEmailMessageSettings> >(); mockMailSettingsOptions.Setup(m => m.Value).Returns(mailSettings); var sut = new JobListingInquireEmailGenerator(razorEngine, attachmentGenerator.Object, mockMailSettingsOptions.Object); var request = sut.GenerateEmail(new InquireModel()); Assert.NotNull(request.Attachments.Single(a => a.Filename == "Practice Transitions.csv")); }