public async Task CheckWebsiteStatusAsyncUnitTest( IEnumerable <ISearchEngineHandler> searchEngineHandlers, CheckWebsiteStatusRequest request, CheckWebsiteStatusResponse response, Type exceptionType) { var cacheHandler = new Mock <ICacheHandler>(); var searchService = new SearchService(searchEngineHandlers, cacheHandler.Object); if (exceptionType == null) { var result = await searchService.CheckWebsiteStatusAsync(request); Assert.Equal(response.ResultItems.Count(), result.ResultItems.Count()); } else { await Assert.ThrowsAsync(exceptionType, () => searchService.CheckWebsiteStatusAsync(request)); } }
public async Task CheckWebsiteStatusCachingAsyncUnitTest( Mock <ISearchEngineHandler> searchEngineHandler, Mock <ICacheHandler> cacheHandler, CheckWebsiteStatusRequest request, bool isCached) { searchEngineHandler.Invocations.Clear(); cacheHandler.Invocations.Clear(); var searchService = new SearchService( new List <ISearchEngineHandler>() { searchEngineHandler.Object }, cacheHandler.Object); await searchService.CheckWebsiteStatusAsync(request); cacheHandler.Verify(ch => ch.GetCacheObject <CheckWebsiteStatusResponse>(It.IsAny <string>()), Times.Once); if (isCached) { searchEngineHandler.Verify(h => h.SelectLinksAsync(It.IsAny <string>(), It.IsAny <int>()), Times.Never); cacheHandler.Verify( ch => ch.SetCacheObject(It.IsAny <string>(), It.IsAny <CheckWebsiteStatusResponse>()), Times.Never); } else { searchEngineHandler.Verify(h => h.SelectLinksAsync(It.IsAny <string>(), It.IsAny <int>()), Times.Once); cacheHandler.Verify( ch => ch.SetCacheObject(It.IsAny <string>(), It.IsAny <CheckWebsiteStatusResponse>()), Times.Once); } }