예제 #1
0
            public void Creates_Instance_WithOptions_Argument()
            {
                // Arrange, Act
                var result = MemoryCacheHandler.New(new Mock <IMemoryCache>().Object, new MemoryCacheEntryOptions());

                // Assert
                Assert.NotNull(result);
            }
예제 #2
0
            public void Creates_Instance()
            {
                // Arrange, Act
                var result = MemoryCacheHandler.New(new Mock <IMemoryCache>().Object);

                // Assert
                Assert.NotNull(result);
            }
예제 #3
0
        internal override Action <IServiceCollection> GetBuild()
        {
            return(services =>
            {
                services.AddMemoryCache();
                services.AddSingleton(provider => MemoryCacheHandler.New(provider.GetService <IMemoryCache>(), Options));

                Descriptors.ForEach(services.TryAdd);
            });
        }
예제 #4
0
        public async Task Instance_Created_Through_MemoryCacher_New_Runs_With_Provided_Cache()
        {
            // Arrange
            var cacher = MemoryCacheHandler.New(_memoryCache);

            // Act
            var result = await cacher.GetOrFetchAsync("name", _ => Task.FromResult("sven"));

            // Assert
            Assert.Equal("sven", result);
            Assert.Equal("sven", _memoryCache.Get <string>("name"));
        }
예제 #5
0
        public SimpleCacheLoad()
        {
            _cache  = new MemoryCache(new MemoryCacheOptions());
            _cacher = MemoryCacheHandler.New(_cache);

            var services = new ServiceCollection();

            services.AddCached(config =>
            {
                config.AddMemoryCaching(options =>
                {
                    options.AddFunction <string, string>(
                        arg => arg,
                        (provider, key, arg) => Task.FromResult(DateTimeOffset.UtcNow.ToString()));
                });
            });

            _serviceProvider = services.BuildServiceProvider();
            _cached          = _serviceProvider.GetService <ICached <string, string> >();
        }
예제 #6
0
        private static async Task Main(string[] args)
        {
            using var cache = MemoryCacheHandler.New();

            while (true)
            {
                Console.WriteLine("Press any key, used as cache key, to get data from cache (or 'q' to quit)");
                ConsoleKeyInfo key = Console.ReadKey();

                if (key.Key == ConsoleKey.Q)
                {
                    break;
                }

                var result = await cache.GetOrFetchAsync(
                    key.Key.ToString(),
                    provider => Task.FromResult(DateTimeOffset.UtcNow.ToString()));

                Console.WriteLine($"Value is: {result}");
            }
        }
예제 #7
0
 public void If_MemoryCache_Argument_Is_Null()
 {
     Assert.Throws <ArgumentNullException>(() =>
                                           MemoryCacheHandler.New(null, new MemoryCacheEntryOptions()));
 }