public void ShouldReturnSuccessIfNewsArticleSunsetDateIsInThePast() { // Arrange const string slug = "news-with-sunrise-date-in-future"; DateTime nowDateTime = DateTime.Now; DateTime pastSunRiseDate = DateTime.Now.AddDays(-20); DateTime pastSunSetDate = DateTime.Now.AddDays(-10); _mockTimeProvider.Setup(o => o.Now()).Returns(nowDateTime); var newsWithSunsetDateInPast = new ContentfulNewsBuilder() .SunsetDate(pastSunSetDate) .SunriseDate(pastSunRiseDate) .Slug(slug) .Build(); var collection = new ContentfulCollection <ContentfulNews>(); collection.Items = new List <ContentfulNews> { newsWithSunsetDateInPast }; var simpleNewsQuery = new QueryBuilder <ContentfulNews>() .ContentTypeIs("news") .FieldEquals("fields.slug", slug) .Include(1) .Build(); _videoRepository.Setup(o => o.Process(It.IsAny <string>())).Returns(newsWithSunsetDateInPast.Body); _cacheWrapper.Setup(_ => _.GetFromCacheOrDirectlyAsync(It.Is <string>(s => s == "news-all"), It.IsAny <Func <Task <IList <ContentfulNews> > > >(), It.Is <int>(s => s == 60))).ReturnsAsync(collection.Items.ToList()); // Act var response = AsyncTestHelper.Resolve(_repository.GetNews(slug)); // Assert response.StatusCode.Should().Be(HttpStatusCode.OK); }
public void GetsANewsItemFromASlug() { // Arrange const string slug = "news-of-the-century"; List <Alert> alerts = new List <Alert> { new AlertBuilder().Build() }; _mockTimeProvider.Setup(o => o.Now()).Returns(DateTime.Now); var contentfulNews = new ContentfulNewsBuilder().Title("This is the news").Body("The news").Teaser("Read more for the news").Slug(slug).SunriseDate(new DateTime(2016, 08, 01)).SunsetDate(new DateTime(2016, 08, 10)).Build(); var collection = new ContentfulCollection <ContentfulNews>(); collection.Items = new List <ContentfulNews> { contentfulNews }; var newsCollection = new List <ContentfulNews> { contentfulNews }; var simpleNewsQuery = new QueryBuilder <ContentfulNews>() .ContentTypeIs("news") .FieldEquals("fields.slug", slug) .Include(1) .Build(); _client.Setup(o => o.GetEntries( It.Is <QueryBuilder <ContentfulNews> >(q => q.Build() == simpleNewsQuery), It.IsAny <CancellationToken>())) .ReturnsAsync(collection); _videoRepository.Setup(o => o.Process(It.IsAny <string>())).Returns(contentfulNews.Body); _cacheWrapper.Setup(_ => _.GetFromCacheOrDirectlyAsync(It.Is <string>(s => s == "news-all"), It.IsAny <Func <Task <IList <ContentfulNews> > > >(), It.Is <int>(s => s == 60))).ReturnsAsync(newsCollection); var newsItem = new News(Title, Slug, Teaser, Purpose, Image, ImageConverter.ConvertToThumbnail(Image), Body, _sunriseDate, _sunsetDate, _crumbs, alerts, null, new List <Document>(), new List <string> { "A category" }); _newsContentfulFactory.Setup(o => o.ToModel(It.IsAny <ContentfulNews>())).Returns(newsItem); // Act var response = AsyncTestHelper.Resolve(_repository.GetNews(slug)); // Assert response.StatusCode.Should().Be(HttpStatusCode.OK); var news = response.Get <News>(); }