Example #1
0
        private async Task Author_Has_Secure_And_Parseable_Feed(IAmACommunityMember author)
        {
            try
            {
                foreach (var feedUri in author.FeedUris)
                {
                    Assert.Equal("https", feedUri.Scheme);
                }

                var authors    = new[] { author };
                var feedSource = new NewCombinedFeedSource(authors);
                var feed       = await feedSource.LoadFeed(null).ConfigureAwait(false);

                Assert.NotNull(feed);

                var allItems = feed.Items.Where(i => i != null).ToList();

                Assert.True(allItems?.Count > 0, $"Author {author?.FirstName} {author?.LastName} @{author?.GitHubHandle} doesn't meet post policy {author?.FeedUris?.FirstOrDefault()?.OriginalString}");
            }
            catch (Exception ex)
            {
                _output.WriteLine($"Feed(s) for {author.FirstName} {author.LastName} @{author?.GitHubHandle} is null or empty {author?.FeedUris?.FirstOrDefault()?.OriginalString}");

                if (author is IAmAYoutuber youtuber)
                {
                    _output.WriteLine("Auhtor is a YouTuber, and will at max have 15 items in feed, ignore empty feed");
                    return;
                }
                else
                {
                    Assert.True(false, $"Feed(s) for {author.FirstName} {author.LastName}  @{author?.GitHubHandle}  is null or empty @{author?.FeedUris?.FirstOrDefault()?.OriginalString}");
                    _output.WriteLine($"Feed(s) for {author.FirstName} {author.LastName} is null or empty");
                }

                throw ex;
            }
        }
Example #2
0
 public FeedController(NewCombinedFeedSource combinedFeedSource)
 {
     _combinedFeedSource = combinedFeedSource;
 }