public async void Handle_ShouldReturnMetricsFromRepository_WhenRefreshCacheTrue() { // ARRANGE var messageRepositoryMock = new Mock <IMessageRepository>(); var memoryCache = new MemoryCache(new MemoryCacheOptions()); var loggerMock = new Mock <ILogger>(); messageRepositoryMock .Setup(x => x.GetOverviewMessageMetrics(It.IsAny <DateTime>(), It.IsAny <DateTime>(), It.IsAny <DateTime>(), It.IsAny <DateTime>())).ReturnsAsync(new MessageMetrics()); var datePeriod = PeriodSelectionEnum.ThisYear; var dateRange = DatePeriodHelper.GetDateRangeFromPeriodSelection(datePeriod); var cacheKey = $"message-{dateRange.StartDate.ToString()}-{dateRange.EndDate.ToString()}"; memoryCache.Set(cacheKey, new MessageMetrics()); var handler = new GetMessageMetricsByPeriodSelectionQueryHandler( messageRepositoryMock.Object, loggerMock.Object, memoryCache ); // ACT var response = await handler.Handle(new GetMessageMetricsByPeriodSelectionQuery() { DatePeriod = datePeriod, RefreshCache = true }, new CancellationToken()); // ASSERT Assert.Equal(QueryResultTypeEnum.Success, response.Type); messageRepositoryMock.Verify(x => x.GetOverviewMessageMetrics(It.IsAny <DateTime>(), It.IsAny <DateTime>(), It.IsAny <DateTime>(), It.IsAny <DateTime>()), Times.Once); }
public async void Handle_ShouldReturnMetricsSuccessfully() { // ARRANGE var messageRepositoryMock = new Mock <IMessageRepository>(); var memoryCache = new MemoryCache(new MemoryCacheOptions()); var loggerMock = new Mock <ILogger>(); messageRepositoryMock .Setup(x => x.GetOverviewMessageMetrics(It.IsAny <DateTime>(), It.IsAny <DateTime>(), It.IsAny <DateTime>(), It.IsAny <DateTime>())).ReturnsAsync(new MessageMetrics()); var handler = new GetMessageMetricsByPeriodSelectionQueryHandler( messageRepositoryMock.Object, loggerMock.Object, memoryCache ); // ACT var response = await handler.Handle(new GetMessageMetricsByPeriodSelectionQuery() { DatePeriod = PeriodSelectionEnum.ThisYear }, new CancellationToken()); // ASSERT Assert.Equal(QueryResultTypeEnum.Success, response.Type); messageRepositoryMock.Verify(x => x.GetOverviewMessageMetrics(It.IsAny <DateTime>(), It.IsAny <DateTime>(), It.IsAny <DateTime>(), It.IsAny <DateTime>()), Times.Once); }