public async Task <IEnumerable <int> > Handle(GetSearchPositionsQuery request, CancellationToken cancellationToken) { var response = await _searchService.GetHtmlString($"/search?num={_searchSetting.Value.ResultNumber}&q={request.Keyword}"); var result = _htmlProcessor.GetSearchPositions(response, request.TargetUrl).ToList(); return(result); }
public async Task <SearchPositionRepresentation> Get(string keyword, string targetUrl) { // create query var query = new GetSearchPositionsQuery(keyword, targetUrl); // sending query via mediator var result = await _mediator.Send(query); // convert result to client specific representational object return(new SearchPositionRepresentation(result)); }
public void it_should_call_html_processor_once() { // setup var givenRequest = new GetSearchPositionsQuery("google", "www.google.com"); var givenResponse = Task.FromResult("<div></div>"); _mockSearchSetting.Setup(s => s.Value).Returns(new SearchSetting { ResultNumber = 1 }); _mockGoogleSearchService.Setup(g => g.GetHtmlString(It.IsAny <string>())).Returns(givenResponse); _mockHtmlProcessor.Setup(h => h.GetSearchPositions(givenResponse.Result, givenRequest.TargetUrl)).Returns(It.IsAny <IEnumerable <int> >()); // act var result = _handler.Handle(givenRequest, CancellationToken.None); // assert _mockHtmlProcessor.Verify(g => g.GetSearchPositions(givenResponse.Result, givenRequest.TargetUrl), Times.Exactly(1)); }