Exemplo n.º 1
0
        private HttpClient CreateClientWithMockProxy(SearchEngineParsingResponse proxyResponse)
        {
            var mockProxy = new Mock <ISearchEngineParsingServiceProxy>();

            mockProxy.Setup(p => p.GetSearchResults(It.IsAny <SearchResultsAnalysisRequest>())).Returns(proxyResponse);
            var factory = new WebApplicationFactory <Startup>()
                          .WithWebHostBuilder(builder => builder.ConfigureTestServices(p => p.AddSingleton(mockProxy.Object)));
            var client = factory.CreateClient();

            return(client);
        }
Exemplo n.º 2
0
        public async Task WhenSearchResultsAnalysisRequested_MatchingResultsWithPositionGreaterThan100AreFilteredOut()
        {
            var urlToMatch = "urlToMatch";
            var request    = new SearchResultsAnalysisRequest("a", "b", urlToMatch);
            var results    = new List <SearchEngineResult>()
            {
                new SearchEngineResult(99, urlToMatch), new SearchEngineResult(100, urlToMatch), new SearchEngineResult(101, urlToMatch)
            };
            var proxyResponse    = new SearchEngineParsingResponse(results);
            var expectedResponse = "99, 100";
            var client           = CreateClientWithMockProxy(proxyResponse);

            var response = await client.PostAsJsonAsync(Url, request);

            var body = await response.Content.ReadAsAsync <SearchResultsAnalysisResponse>();

            body.Results.Should().Be(expectedResponse);
        }
Exemplo n.º 3
0
        public async Task WhenSearchResultsAnalysisRequested_ThenBodyContainsCommaSeparatedListOfPositionsOfMatchingResults()
        {
            var urlToMatch = "urlToMatch";
            var request    = new SearchResultsAnalysisRequest("a", "b", urlToMatch);
            var results    = new List <SearchEngineResult>()
            {
                new SearchEngineResult(1, urlToMatch), new SearchEngineResult(28, urlToMatch), new SearchEngineResult(89, "")
            };
            var proxyResponse    = new SearchEngineParsingResponse(results);
            var expectedResponse = "1, 28";
            var client           = CreateClientWithMockProxy(proxyResponse);

            var response = await client.PostAsJsonAsync(Url, request);

            var body = await response.Content.ReadAsAsync <SearchResultsAnalysisResponse>();

            body.Results.Should().Be(expectedResponse);
        }
Exemplo n.º 4
0
 private List <int> FilterResults(SearchResultsAnalysisRequest request, SearchEngineParsingResponse parsingResponse)
 {
     return(parsingResponse.Results.Where(p => p.Result == request.UrlToMatch).Select(p => p.Position).ToList());
 }
Exemplo n.º 5
0
        private SearchResultsAnalysisResponse AnalyseResponse(SearchResultsAnalysisRequest request, SearchEngineParsingResponse parsingResponse)
        {
            var filteredResults = FilterResults(request, parsingResponse);
            var limitedResults  = LimitResults(filteredResults);

            var formattedResult = FormatResult(limitedResults);

            CacheResult(request, formattedResult);

            return(new SearchResultsAnalysisResponse(formattedResult));
        }