コード例 #1
0
        public async Task When_null_search_term_is_passed_an_error_is_returned()
        {
            var webSearcherService = new WebSearcherService(_querySearcherService.Object);
            var results            = await webSearcherService.Search(null);

            Assert.AreEqual(1, results.ErrorList.Count);
            Assert.AreEqual(0, results.Results.Count());
        }
コード例 #2
0
        public async Task When_searching_any_errors_are_caught_and_handled()
        {
            var q = new Mock <ISearchEngineQuery>();

            q.Setup(x => x.Search(It.IsAny <string>())).Returns(Task.FromException <IEnumerable <SearchResultItem> >(new Exception("Kaboom")));

            _searchers.Add(q.Object);

            var webSearcherService = new WebSearcherService(_querySearcherService.Object);
            var results            = await webSearcherService.Search("Test");

            Assert.AreEqual(1, results.ErrorList.Count);
            Assert.AreEqual(0, results.Results.Count());
        }
コード例 #3
0
        public async Task When_searching_successful_results_are_returned()
        {
            IEnumerable <SearchResultItem> searchReturn = new List <SearchResultItem> {
                new SearchResultItem("Test", "www.test.com", "Google")
            };

            var q = new Mock <ISearchEngineQuery>();

            q.Setup(x => x.Search(It.IsAny <string>())).Returns(Task.FromResult(searchReturn));

            _searchers.Add(q.Object);

            var webSearcherService = new WebSearcherService(_querySearcherService.Object);
            var results            = await webSearcherService.Search("Test");

            Assert.AreEqual(0, results.ErrorList.Count);
            Assert.AreEqual(1, results.Results.Count());
            var searchResult = results.Results.First();

            Assert.AreEqual("Test", searchResult.Title);
        }
コード例 #4
0
        public async Task When_searching_multiple_searchers_and_one_errors_other_searchers_still_complete_and_return_results()
        {
            IEnumerable <SearchResultItem> searchReturn = new List <SearchResultItem> {
                new SearchResultItem("Test", "www.test.com", "Google")
            };

            var goodSearcher = new Mock <ISearchEngineQuery>();

            goodSearcher.Setup(x => x.Search(It.IsAny <string>())).Returns(Task.FromResult(searchReturn));
            _searchers.Add(goodSearcher.Object);

            var badSearcher = new Mock <ISearchEngineQuery>();

            badSearcher.Setup(x => x.Search(It.IsAny <string>())).Returns(Task.FromException <IEnumerable <SearchResultItem> >(new Exception("Kaboom")));
            _searchers.Add(badSearcher.Object);

            var webSearcherService = new WebSearcherService(_querySearcherService.Object);
            var results            = await webSearcherService.Search("Test");

            Assert.AreEqual(1, results.ErrorList.Count);
            Assert.AreEqual(1, results.Results.Count());
        }
コード例 #5
0
 public HomeController()
 {
     // This would be injected using something like Ninject
     webSearcherService = new WebSearcherService(new QuerySourceService());
 }