public async Task GetOrCreateAsync_MemoryContains() { const string generatedKey = "key1"; var testObject = new TestClass { MyProperty = Test }; IMemoryCache memoryCache = new MemoryCache(new MemoryCacheOptions()); memoryCache.Set(generatedKey, testObject); var options = Options.Create(new MemoryDistributedCacheOptions()); var redisCache = new MemoryDistributedCache(options); var logger = Substitute.For <ILogger <CommonCachingService> >(); var cacheService = new CommonCachingService(memoryCache, redisCache, logger); await cacheService.GetOrCreateAsync(generatedKey, () => Task.FromResult(testObject), TimeSpan.FromSeconds(30), TimeSpan.FromMinutes(5)); var result = await cacheService.GetOrCreateAsync(generatedKey, () => Task.FromResult(testObject), TimeSpan.FromSeconds(30), TimeSpan.FromMinutes(5)); Assert.AreEqual(Test, result.MyProperty); logger.Received(0).Log(LogLevel.Debug, Arg.Any <EventId>(), Arg.Is <Microsoft.Extensions.Logging.Internal.FormattedLogValues>(flv => flv.ToString() == $"Getting cached value from Distributed cache for key {generatedKey}"), null, Arg.Any <Func <Object, Exception, string> >()); logger.Received(0).Log(LogLevel.Debug, Arg.Any <EventId>(), Arg.Is <Microsoft.Extensions.Logging.Internal.FormattedLogValues>(flv => flv.ToString() == $"Read cached value from Distributed cache for key {generatedKey}"), null, Arg.Any <Func <Object, Exception, string> >()); logger.Received(0).Log(LogLevel.Debug, Arg.Any <EventId>(), Arg.Is <Microsoft.Extensions.Logging.Internal.FormattedLogValues>(flv => flv.ToString() == $"Stored in Distributed cache for key {generatedKey}"), null, Arg.Any <Func <Object, Exception, string> >()); }
public async Task GetOrCreateAsync_MemoryContains() { const string generatedKey = "key1"; var testObject = new TestClass { MyProperty = Test }; IMemoryCache memoryCache = new MemoryCache(new MemoryCacheOptions()); memoryCache.Set(generatedKey, testObject); var options = Options.Create(new MemoryDistributedCacheOptions()); var redisCache = new MemoryDistributedCache(options); var logger = Substitute.For <LoggerMock <CommonCachingService> >(); var cacheService = new CommonCachingService(memoryCache, redisCache, logger); await cacheService.GetOrCreateAsync(generatedKey, () => Task.FromResult(testObject), TimeSpan.FromSeconds(30), TimeSpan.FromMinutes(5)); var result = await cacheService.GetOrCreateAsync(generatedKey, () => Task.FromResult(testObject), TimeSpan.FromSeconds(30), TimeSpan.FromMinutes(5)); Assert.AreEqual(Test, result.MyProperty); logger.Received(0).Log(LogLevel.Debug, $"Getting cached value from Distributed cache for key {generatedKey}"); logger.Received(0).Log(LogLevel.Debug, $"Read cached value from Distributed cache for key {generatedKey}"); logger.Received(0).Log(LogLevel.Debug, $"Stored in Distributed cache for key {generatedKey}"); }
public async Task GetOrCreateAsync_NotSupportedType() { const string generatedKey = "key1"; IMemoryCache memoryCache = new MemoryCache(new MemoryCacheOptions()); var options = Options.Create(new MemoryDistributedCacheOptions()); var redisCache = new MemoryDistributedCache(options); var logger = Substitute.For <ILogger <CommonCachingService> >(); var cacheService = new CommonCachingService(memoryCache, redisCache, logger); var result = await cacheService.GetOrCreateAsync(generatedKey, () => Task.FromResult(Test), TimeSpan.FromSeconds(30), TimeSpan.FromMinutes(5)); }