public void SetUp() { _endPointMock = new Mock <ICachedStoriesEndPointDecorator>(); _endPointMock.Setup(e => e.GetBestStoriesAsync(CancellationToken.None)) .ReturnsAsync(() => StoriesTestHelper.GenerateStories(200).ToList()); _loggerMock = new Mock <ILogger <StoriesController> >(); _storiesController = new StoriesController(_endPointMock.Object, _loggerMock.Object); }
public async Task UseCachingService() { var stories = StoriesTestHelper.GenerateStories(200).ToList(); _storiesEndPointMock.Setup(e => e.GetBestStoriesAsync(It.IsAny <CancellationToken>())) .ReturnsAsync(() => stories); var result = await _cachedEndPoint.GetBestStoriesAsync(CancellationToken.None); // Expecting a call to StoriesEndPoint to get data _storiesEndPointMock.Verify(s => s.GetBestStoriesAsync(It.IsAny <CancellationToken>()), Times.Once); Assert.AreEqual(200, result.Count); _storiesCachingService.Setup(c => c.Get()).Returns(() => stories); result = await _cachedEndPoint.GetBestStoriesAsync(CancellationToken.None); // Verifying that after 2 calls the underlying service has only been called once and instead the data must have been retrieved from the cache _storiesEndPointMock.Verify(s => s.GetBestStoriesAsync(It.IsAny <CancellationToken>()), Times.Once); Assert.AreEqual(200, result.Count); }