public void Getting_unsupported_asynchronous_cache_returns_null()
        {
            var fakeCacheManager = Substitute.For<ICacheProvider>();
            fakeCacheManager
                .IsAsynchronousSupported
                .Returns(false);

            ICacheResolver cacheResolver = new DefaultCacheResolver(fakeCacheManager, Substitute.For<ILogger>());

            var cache = cacheResolver.GetAsyncCache(typeof(IAccount));
            cache.ShouldBeNull();
        }
        public void Getting_synchronous_cache()
        {
            var fakeCacheManager = Substitute.For<ISynchronousCacheProvider>();
            fakeCacheManager
                .IsSynchronousSupported
                .Returns(true);
            fakeCacheManager
                .GetSyncCache(Arg.Any<string>())
                .Returns(Substitute.For<ISynchronousCache>());

            ICacheResolver cacheResolver = new DefaultCacheResolver(fakeCacheManager, Substitute.For<ILogger>());

            var cache = cacheResolver.GetSyncCache(typeof(IAccount));
            cache.ShouldBeAssignableTo<ISynchronousCache>();
        }