public async Task InitializeAsync() { var html = await File.ReadAllTextAsync("./hackernewsHtml.html"); var context = BrowsingContext.New(Configuration.Default); document = await context.OpenAsync(req => req.Content(html)); pageLoader = NSubstitute.Substitute.For <IAngleSharpPageLoader>(); pageLoader.LoadPage(Arg.Any <string>()).Returns(document); hackerNewsFieldsParser = Substitute.For <INewsParser>(); hackerNewsFieldsParser.ParseTitle(Arg.Any <string>()).Returns("Title"); hackerNewsFieldsParser.ParseUser(Arg.Any <string>()).Returns("User"); hackerNewsFieldsParser.TryParseUrl(Arg.Any <string>(), out Arg.Any <Uri>()) .Returns(x => { x[1] = new Uri("http://test.com"); return(true); }); hackerNewsFieldsParser.TryParsePoints(Arg.Any <string>(), out Arg.Any <int>()) .Returns(x => { x[1] = 10; return(true); }); hackerNewsFieldsParser.TryParseRank(Arg.Any <string>(), out Arg.Any <int>()) .Returns(x => { x[1] = 20; return(true); }); hackerNewsFieldsParser.TryParseComments(Arg.Any <string>(), out Arg.Any <int>()) .Returns(x => { x[1] = 30; return(true); }); documentParser = new HackerNewsHtmlDocumentParser(hackerNewsFieldsParser); }
public HackerNewsProvider(IAngleSharpPageLoader pageLoader, IHtmlDocumentParser htmlDocumentParser) { this.pageLoader = pageLoader; this.htmlDocumentParser = htmlDocumentParser; }
public HackerNewsProviderTests() { pageLoader = NSubstitute.Substitute.For <IAngleSharpPageLoader>(); hackerNewsHtmlDocumentParser = Substitute.For <IHtmlDocumentParser>(); newsProvider = new HackerNewsProvider(pageLoader, hackerNewsHtmlDocumentParser); }