示例#1
0
        public async void SendsDateAndBodyToMailService()
        {
            var items = new List <Item>()
            {
                new Item {
                    Specialities = new List <Speciality>()
                }
            }.AsEnumerable();
            var mockContentService = new Mock <IContentService>();

            mockContentService
            .Setup(x => x.GetDailyItemsAsync(It.IsAny <DateTime>()))
            .ReturnsAsync(items);

            var body             = "<p>body</p>";
            var mockViewRenderer = new Mock <IViewRenderer>();

            mockViewRenderer
            .Setup(x => x.RenderViewAsync(It.IsAny <MailController>(), It.IsAny <string>(), It.IsAny <DailyEmailViewModel>(), false))
            .ReturnsAsync(body);

            var mockMailService = new Mock <IMailService>();

            var mailController = new MailController(new FakeMailChimpManager().Object, mockMailService.Object, mockContentService.Object, mockViewRenderer.Object, Mock.Of <IBankHolidayService>(), Mock.Of <ILogger <MailController> >(), Mock.Of <MailConfig>(), TestAppSettings.MailChimp.Default);
            var sendDate       = new DateTime(1856, 7, 10);

            //Act
            await mailController.PutDailyMailAsync(sendDate);

            //Assert
            mockMailService.Verify(mock => mock.CreateAndSendDailyAsync(sendDate, It.IsAny <string>(), body, It.IsAny <List <string> >(), It.IsAny <IEnumerable <Interest> >(), It.IsAny <string>()), Times.Once());
        }
示例#2
0
        public async void RendersDailyViewWithViewModel()
        {
            var items = new List <Item>()
            {
                new Item {
                }
            }.AsEnumerable();
            var mockContentService = new Mock <IContentService>();

            mockContentService.Setup(x => x.GetDailyItemsAsync(It.IsAny <DateTime>())).ReturnsAsync(items);

            var mockViewRenderer = new Mock <IViewRenderer>();

            var mailConfig = new MailConfig
            {
                DailySubject = ""
            };

            var mailController = new MailController(new FakeMailChimpManager().Object, Mock.Of <IMailService>(), mockContentService.Object, mockViewRenderer.Object, new FakeBankHolidayService(), Mock.Of <ILogger <MailController> >(), mailConfig, TestAppSettings.MailChimp.Default);

            //Act
            await mailController.PutDailyMailAsync();

            //Assert
            // TODO: Assert on the actual view model
            mockViewRenderer.Verify(mock => mock.RenderViewAsync(mailController, "~/Views/Mail/Daily.cshtml", It.IsAny <DailyEmailViewModel>(), false), Times.Once());
        }
示例#3
0
        public async void GetDailyItemsForSpecificDate()
        {
            DateTime date = new DateTime(2020, 1, 15);
            var      mockContentService = new Mock <IContentService>();
            var      mailService        = new MailController(new FakeMailChimpManager().Object, Mock.Of <IMailService>(), mockContentService.Object, Mock.Of <IViewRenderer>(), new FakeBankHolidayService(), Mock.Of <ILogger <MailController> >(), Mock.Of <MailConfig>(), TestAppSettings.MailChimp.Default);

            //Act
            await mailService.PutDailyMailAsync(date);

            //Assert
            mockContentService.Verify(mock => mock.GetDailyItemsAsync(date), Times.Once());
        }
示例#4
0
        public async void DoesntRenderViewWhenNoItemsFound()
        {
            var items = Enumerable.Empty <Item>();
            var mockContentService = new Mock <IContentService>();

            mockContentService.Setup(x => x.GetDailyItemsAsync(It.IsAny <DateTime>())).ReturnsAsync(items);

            var mockViewRenderer = new Mock <IViewRenderer>();

            var mailConfig = new MailConfig
            {
                DailySubject = ""
            };

            var mailController = new MailController(new FakeMailChimpManager().Object, Mock.Of <IMailService>(), mockContentService.Object, mockViewRenderer.Object, new FakeBankHolidayService(), Mock.Of <ILogger <MailController> >(), mailConfig, TestAppSettings.MailChimp.Default);

            //Act
            await mailController.PutDailyMailAsync();

            //Assert
            mockViewRenderer.Verify(mock => mock.RenderViewAsync(mailController, "~/Views/Mail/Daily.cshtml", items, false), Times.Never());
        }