コード例 #1
0
        public async void SingleArticleDownloadTest(int site, Language lang, int link)
        {
            _extendedRandom.NextLanguage().Returns(lang);
            _extendedRandom.NextEntry(Arg.Any <IReadOnlyList <string> >())
            .Returns(ci => ((IReadOnlyList <string>)ci[0])[link]);
            _extendedRandom.NextEntry(Arg.Any <IReadOnlyList <INewsSite> >())
            .Returns(ci => ((IReadOnlyList <INewsSite>)ci[0])[site]);

            var article = await _instance.GetNextArticleAsync();

            article.Should().NotBeNull();
            article.ActualLanguage.Should().Be(lang);
            article.Content.Should().NotBeNullOrWhiteSpace();
            _output.WriteLine("language: {0}\n Content:\n{1}",
                              article.ActualLanguage, article.Content);
        }
コード例 #2
0
        public async Task <Article> GetNextArticleAsync()
        {
            Language     language    = _extendedRandom.NextLanguage();
            string       mainSiteUrl = GetMainSiteUrlForLanguage(language);
            HtmlDocument mainSite    = await _pageDownloadService.DownloadDocumentAsync(mainSiteUrl);

            List <string> articleUrls        = _newsSiteParser.ParseMainSite(mainSite).ToList();
            string        articleUrl         = _extendedRandom.NextEntry(articleUrls);
            string        articleAbsoluteUrl = ToAbsoluteUrl(mainSiteUrl, articleUrl);
            HtmlDocument  articleHtml        = await _pageDownloadService.DownloadDocumentAsync(articleAbsoluteUrl);

            Article article = _newsSiteParser.ParseArticleSite(articleHtml);

            article.ActualLanguage = language;
            return(article);
        }