예제 #1
0
        public void CanCreatePracticeBuyEmailGenerator()
        {
            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 PracticeBuyEmailGenerator(razorEngine, attachmentGenerator, mockMailSettingsOptions.Object);
        }
예제 #2
0
        public void Generate_WhenPassedModelIsNotOfTypeBuyPracticeModel_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 PracticeBuyEmailGenerator(razorEngine, attachmentGenerator, mockMailSettingsOptions.Object);

            Assert.Throws <ArgumentException>(() => sut.GenerateEmail(new SellPracticeModel()));
        }
예제 #3
0
        public void GenerateEmail_WhenPassedModelIsOfTypeBuyPracticeModel_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 PracticeBuyEmailGenerator(razorEngine, attachmentGenerator, mockMailSettingsOptions.Object);

            Assert.NotNull(sut.GenerateEmail(new BuyPracticeModel()));
        }
예제 #4
0
        public void CanGenerateEmailFromModel_WhenPassedModelThatIsNotOfTypeBuyPracticeModel_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 PracticeBuyEmailGenerator(razorEngine, attachmentGenerator, mockMailSettingsOptions.Object);

            Assert.False(sut.CanGenerateEmailFromModel(new SellPracticeModel()));
        }
예제 #5
0
        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 PracticeBuyEmailGenerator(razorEngine, attachmentGenerator.Object, mockMailSettingsOptions.Object);

            var request = sut.GenerateEmail(new BuyPracticeModel());

            Assert.NotNull(request.Attachments.Single(a => a.Filename == "Practice Transitions.csv"));
        }