public void ServiceReturnsResultFromDb()
        {
            TestSearcherProvider provider = new TestSearcherProvider().AddSearcher(new BasicSearcher("first searher"))
                                            .AddSearcher(new BasicSearcher("second searcher"));

            var repo = TestRepoHelper.CreateRepoWithQuerry("hello world");

            LazySearchService service = new LazySearchService(provider, repo);

            var result = service.SearchAsync("hello world").GetAwaiter().GetResult();

            Assert.IsFalse(result.Any(x => x.Title.Contains("first searher")));
            Assert.IsFalse(result.Any(x => x.Title.Contains("second searcher")));
        }
        public void ShouldReturnFastestNotNullResponse()
        {
            TestSearcherProvider provider = new TestSearcherProvider().AddSearcher(new EmptyResultSearcher("empty searcher"))
                                            .AddSearcher(new SlowSearcher(4, "first searher"))
                                            .AddSearcher(new SlowSearcher(3, "second searcher"))
                                            .AddSearcher(new SlowSearcher(1, "fastest searcher"))
                                            .AddSearcher(new ErroredSearcher("errored searcher"));

            var repo = TestRepoHelper.CreateEmptyRepository();

            DefaultSearchService service = new DefaultSearchService(provider, repo);

            var result = service.SearchAsync("hello world").GetAwaiter().GetResult();

            Assert.IsTrue(result.All(x => x.Title.Contains("fastest searcher")));
        }