public void ShouldCreateATopicFromAContentfulTopicAndFilterAlertsWithAllOutsideOfDates()
        {
            var alerts = new List <ContentfulAlert> {
                new ContentfulAlertBuilder().SunsetDate(new DateTime(2017, 04, 10)).SunriseDate(new DateTime(2017, 03, 01)).Build(),
                new ContentfulAlertBuilder().SunsetDate(new DateTime(2017, 10, 03)).SunriseDate(new DateTime(2017, 03, 01)).Build()
            };

            var contentfulTopic = new ContentfulTopicBuilder().Alerts(alerts).Build();

            var topic = _topicContentfulFactory.ToModel(contentfulTopic);

            topic.Alerts.Should().HaveCount(0);
        }
        public void GetsTopicByTopicSlug()
        {
            const string slug            = "a-slug";
            var          contentfulTopic = new ContentfulTopicBuilder().Slug(slug).Build();
            var          collection      = new ContentfulCollection <ContentfulTopic>();

            collection.Items = new List <ContentfulTopic> {
                contentfulTopic
            };

            var builder = new QueryBuilder <ContentfulTopic>().ContentTypeIs("topic").FieldEquals("fields.slug", slug).Include(2);

            _contentfulClient.Setup(o => o.GetEntries(It.Is <QueryBuilder <ContentfulTopic> >(q => q.Build() == builder.Build()),
                                                      It.IsAny <CancellationToken>())).ReturnsAsync(collection);

            _topicFactory.Setup(o => o.ToModel(contentfulTopic)).Returns(_topic);

            var response = AsyncTestHelper.Resolve(_repository.GetTopicByTopicSlug(slug));

            response.StatusCode.Should().Be(HttpStatusCode.OK);
            var topic = response.Get <Topic>();

            topic.Should().BeEquivalentTo(_topic);
        }