public void Setup() { _googleSearchApiClientMockBuilder = new CommonSearchApiClientMockBuilder(); _bingSearchApiClientMockBuilder = new CommonSearchApiClientMockBuilder(); IEnumerable <ICommonSearchApiClient> clients = BuildIEnumerableSearchClients(); var searchFightService = new SearchFightService(clients); _queryReportService = new QueryReportService(searchFightService); }
public async Task SearchFight() { string cSharp = "C#"; int cSharpGoogleTotal = 25000; int cSharpBingTotal = 50000; string js = "JavaScript"; int jsGoogleTotal = 30000; int jsBingTotal = 40000; var programmingLanguages = new string[] { cSharp, js }; var searchHttpClient = new Mock <ISearchHttpClient>(); searchHttpClient .Setup(x => x.GetGoogleResults(cSharp)) .Returns(Task.FromResult(cSharpGoogleTotal)); searchHttpClient .Setup(x => x.GetBingResults(cSharp)) .Returns(Task.FromResult(cSharpBingTotal)); searchHttpClient .Setup(x => x.GetGoogleResults(js)) .Returns(Task.FromResult(jsGoogleTotal)); searchHttpClient .Setup(x => x.GetBingResults(js)) .Returns(Task.FromResult(jsBingTotal)); var searchService = new SearchService(searchHttpClient.Object); var searchFightService = new SearchFightService(searchService); var result = await searchFightService.SearchFight(programmingLanguages); var cSharpResult = result.ProgrammingLanguageResults[0]; var jsResult = result.ProgrammingLanguageResults[1]; Assert.AreEqual(cSharp, cSharpResult.ProgrammingLanguage); Assert.AreEqual(cSharpGoogleTotal, cSharpResult.GoogleTotal); Assert.AreEqual(cSharpBingTotal, cSharpResult.BingTotal); Assert.AreEqual(js, jsResult.ProgrammingLanguage); Assert.AreEqual(jsGoogleTotal, jsResult.GoogleTotal); Assert.AreEqual(jsBingTotal, jsResult.BingTotal); Assert.AreEqual(js, result.GoogleWinner); Assert.AreEqual(cSharp, result.BingWinner); Assert.AreEqual(cSharp, result.TotalWinner); }
static async Task Main(string[] args) { if (args.Length == 0) { Console.WriteLine("No valid arguments have been passed."); return; } Console.WriteLine("Loading results..."); ISearchFightService searchFightService = new SearchFightService(); await searchFightService.ExecuteSearchFight(args); searchFightService.Reports.ForEach(report => Console.WriteLine(report)); Console.ReadLine(); }
static async Task Main(string[] args) { try { var collection = new ServiceCollection(); collection.AddHttpClient(); collection.AddLogging(); collection.AddScoped <ISearchEngine, GoogleSearch>(); collection.AddScoped <ISearchEngine, BingSearch>(); var serviceProvider = collection.BuildServiceProvider(); var services = serviceProvider.GetServices <ISearchEngine>(); var service = new SearchFightService(services); var result = await service.Fight(args); foreach (var queryResult in result.QueryResults) { Console.Write($"{queryResult.Query}: "); foreach (var response in queryResult.EnginesResponses) { Console.Write($" {response.SearchEngine}: {response.Entries}"); } Console.WriteLine(); } foreach (var winner in result.Winners) { Console.WriteLine($"{winner.SearchEngine} winner: {winner.Query}"); } Console.WriteLine($"Total Winner : {result.TotalWinner}"); } catch (Exception e) { Console.WriteLine(e.Message); } }
public SearchFightServiceTests() { _service = new SearchFightService(); }