public async Task CatchOtherExceptionAndReturnProperResult() { var searchEngine = new TestSearchEngine("John", "Joe", "Sarah"); var lookuper = GetLookuper(searchEngine); searchEngine.SetActionsWithRepeatingTheLastOneForever(new TestSearchEngineThrowExceptionAction()); var searchResults = lookuper.Lookup(TextsForKeyPresses("Jo")); await searchResults.ShouldHaveSearchResults(new[] { "<< ERROR >>" }); }
public async Task SearchShouldBeCancellableAndReturnProperResult() { var searchEngine = new TestSearchEngine("John", "Joe", "Sarah"); var lookuper = GetLookuper(searchEngine, timeoutDueTime: TimeSpan.FromMinutes(1)); searchEngine.SetActionsWithRepeatingTheLastOneForever(new TestSearchEngineInfiniteAction()); var searchResultAssertTask = lookuper.Lookup(TextsForKeyPresses("Jo")) .ShouldHaveSearchResults(new[] { "<< CANCEL >>" }); await searchEngine.SearchBeginnings.FirstAsync(); // wait for ["Jo"] to be started processing lookuper.Cancel(); await searchResultAssertTask; }