public void SearchByExpression_ShouldReturnResponse_WhenDataIsAvailable() { var term = "java"; var _handler = new Mock <IHttpHandler>(); var _configuration = IntialMockConfiguration(); var _gateway = new GoogleSearchEngineGateway(_configuration.Object, _handler.Object); var response = new HttpResponseMessage { StatusCode = System.Net.HttpStatusCode.OK, Content = new StringContent("{\n \"kind\": \"Custom\",\n \"searchInformation\":{\n \"totalResults\":\"1500\",\n \"searchTime\":0.123 \n } \n}") }; var expected = new GoogleResponseDto { Kind = "Custom", SearchInformation = new SearchInformationDto { SearchTime = 0.123, TotalResults = "1500" } }; _handler.Setup(s => s.GetAsync(It.IsAny <string>())).Returns(Task.FromResult(response)); var actual = _gateway.SearchByExpression(term); actual.Should().BeEquivalentTo(expected); }
public static SearchResult ToSearchResultModel(this GoogleResponseDto response, string term, string engine) { var googleResult = new SearchResult(); googleResult.Result = Convert.ToInt64(response.SearchInformation.TotalResults); googleResult.EngineName = engine; googleResult.TermToSearch = term; return(googleResult); }
public void Search_ShouldThrowException_WhenResponseIsNull() { var term = "java"; GoogleResponseDto response = null; _gateway.Setup(g => g.SearchByExpression(It.IsAny <string>())).Returns(response); Action act = () => _searchEngine.Search(term); act.Should().Throw <Exception>().And.Message.Should().Be("Quota exceeded for quota metric 'Queries' and limit 'Queries per day' of service 'customsearch.googleapis.com'"); }
public void SearchEngineResults_ShouldReturnResults_WhenGivenValidTerms() { string[] terms = { ".net", "java" }; var expected = new List <SearchResult>() { new SearchResult { EngineName = "Google", Result = 1500, TermToSearch = ".net" }, new SearchResult { EngineName = "Bing", Result = 1000, TermToSearch = ".net" }, new SearchResult { EngineName = "Google", Result = 1500, TermToSearch = "java" }, new SearchResult { EngineName = "Bing", Result = 1000, TermToSearch = "java" } }; var bingResponse = new BingResponseDto { WebPages = new WebPagesDto { TotalEstimatedMatches = 1000, WebSearchUrl = "SomeUrl" }, _Type = "Custom" }; var googleResponse = new GoogleResponseDto { Kind = "CustomSerch", SearchInformation = new SearchInformationDto { SearchTime = 0.123, TotalResults = "1500" } }; _bingGateway.Setup(s => s.SearchByExpression(".net")).Returns(bingResponse); _bingGateway.Setup(s => s.SearchByExpression("java")).Returns(bingResponse); _googleGateway.Setup(s => s.SearchByExpression(".net")).Returns(googleResponse); _googleGateway.Setup(s => s.SearchByExpression("java")).Returns(googleResponse); var actual = _manager.SearchEngineResults(terms); actual.Should().BeEquivalentTo(expected); }
public void ToSearchResultModel_ShouldMapSearchInformationTotalResultsToResult_WhenProcessingGoogleResponse() { var term = ".net"; var engine = "Google"; var bingResponseDto = new GoogleResponseDto { SearchInformation = new SearchInformationDto { TotalResults = "1000" } }; var expected = new SearchResult { EngineName = engine, Result = 1000, TermToSearch = term }; var actual = bingResponseDto.ToSearchResultModel(term, engine); actual.Should().BeEquivalentTo(expected); }
public void Search_ShouldReturnSearchReturnModel_WhenGivenATerm() { var term = "java"; var expected = new SearchResult { EngineName = "Google", TermToSearch = term, Result = 1500 }; var response = new GoogleResponseDto { Kind = "CustomSearch#Search", SearchInformation = new SearchInformationDto { SearchTime = 0.123, TotalResults = "1500" } }; _gateway.Setup(g => g.SearchByExpression(term)).Returns(response); var actual = _searchEngine.Search(term); actual.Should().BeEquivalentTo(expected); }