public async Task SetsCorrectCacheEntry_WhenOptimizeRouteResultIsSuccess_AndRequestOrderIsUpdated() { var optimizeRouteService = new Mock <IOptimizeRouteService>(); optimizeRouteService.Setup(x => x.OptimizeRoute(It.IsAny <OptimizeRouteCriteria>())) .ReturnsAsync(new OptimizeRouteResult { Distance = 10, Duration = 10, RequestIds = new List <Guid> { Request4Id, Request1Id } }); var cache = new MemoryCache(new MemoryCacheOptions()); var sut = new OptimizeRouteCommandHandler(Context, optimizeRouteService.Object, cache); await sut.Handle(new OptimizeRouteCommand { ItineraryId = 1, UserId = "123" }); var expectedCacheKey = CacheKeyBuilder.BuildOptimizeRouteCacheKey("123", 1); OptimizeRouteResultStatus cachedStatus = null; var keyExists = cache.TryGetValue(expectedCacheKey, out cachedStatus); keyExists.ShouldBeTrue(); cachedStatus.IsSuccess.ShouldBeTrue(); cachedStatus.StatusMessage.ShouldBe(OptimizeRouteStatusMessages.OptimizeSucess); }
private void SetOptimizeCache(string userId, int itineraryId, OptimizeRouteResultStatus message) { if (!string.IsNullOrEmpty(userId)) { var cacheEntryOptions = new MemoryCacheEntryOptions().SetAbsoluteExpiration(TimeSpan.FromMinutes(1)); _cache.Set(CacheKeyBuilder.BuildOptimizeRouteCacheKey(userId, itineraryId), message, cacheEntryOptions); } }
public async Task SetsCorrectCacheEntry_WhenOptimizeRouteResultIsNotSuccess() { const string statusMsg = "failure"; var optimizeRouteService = new Mock <IOptimizeRouteService>(); optimizeRouteService.Setup(x => x.OptimizeRoute(It.IsAny <OptimizeRouteCriteria>())) .ReturnsAsync(OptimizeRouteResult.FailedOptimizeRouteResult(statusMsg)); var cache = new MemoryCache(new MemoryCacheOptions()); var sut = new OptimizeRouteCommandHandler(Context, optimizeRouteService.Object, cache); await sut.Handle(new OptimizeRouteCommand { ItineraryId = 1, UserId = "123" }); var expectedCacheKey = CacheKeyBuilder.BuildOptimizeRouteCacheKey("123", 1); OptimizeRouteResultStatus cachedStatus = null; var keyExists = cache.TryGetValue(expectedCacheKey, out cachedStatus); keyExists.ShouldBeTrue(); cachedStatus.IsSuccess.ShouldBeFalse(); cachedStatus.StatusMessage.ShouldBe(statusMsg); }