示例#1
0
        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));
            }
        }
示例#2
0
        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);
            }
        }