Esempio n. 1
0
 public CacheOptionsProviderTests()
 {
     KeyGenerator    = Substitute.For <ICacheOptionsKeyGenerator>();
     ServiceProvider = Substitute.For <IServiceProvider>();
     Sut             = new CacheOptionsProvider(KeyGenerator, ServiceProvider);
     MethodInfo      = Substitute.For <MethodInfo>();
 }
Esempio n. 2
0
        public void NotFoundReturnsNull()
        {
            // Arrange
            CacheOptionsProvider optionsProvider = new CacheOptionsProvider(new[] { new CacheOptions <SimpleCommand2>(TimeSpan.FromMinutes(5)) });

            // Act
            CacheOptions options = optionsProvider.Get(new SimpleCommand());

            // Assert
            Assert.Null(options);
        }
Esempio n. 3
0
        public void ReturnsRegisteredType()
        {
            // Arrange
            CacheOptionsProvider optionsProvider = new CacheOptionsProvider(new[] { new CacheOptions <SimpleCommand>(TimeSpan.FromMinutes(5)) });

            // Act
            CacheOptions options = optionsProvider.Get(new SimpleCommand());

            // Assert
            Assert.NotNull(options);
            Assert.Equal(TimeSpan.FromMinutes(5), options.LifeTime());
            Assert.Null(options.ExpiresAtUtc);
            Assert.Null(options.MaxConcurrentExecutions);
        }
Esempio n. 4
0
        public void ConcreteTypeOverridesEvalType()
        {
            // Arrange
            CacheOptionsProvider optionsProvider = new CacheOptionsProvider(new[]
            {
                (CacheOptions) new EvalCacheOptions(c => true, TimeSpan.FromMinutes(5)),
                new CacheOptions <SimpleCommand>(TimeSpan.FromMinutes(5))
            });

            // Act
            CacheOptions options = optionsProvider.Get(new SimpleCommand());

            // Assert
            Assert.NotNull(options);
            Assert.Equal(TimeSpan.FromMinutes(5), options.LifeTime());
            Assert.Null(options.ExpiresAtUtc);
            Assert.Null(options.MaxConcurrentExecutions);
        }
        /// <summary>
        /// Sets up the cache with the specified cache key provider
        /// </summary>
        /// <param name="resolver">The dependency resolver</param>
        /// <param name="cacheKeyProvider">Instance of a cache key provider</param>
        /// <param name="replaceDefaultCommandDispatcher">If true then the default ICommandDispatcher will be replaced with the caching variant</param>
        /// <param name="options">Cache options</param>
        /// <returns>The dependency resolver</returns>
        public static ICommandingDependencyResolver UseCommandCache(
            this ICommandingDependencyResolver resolver,
            ICacheKeyProvider cacheKeyProvider,
            bool replaceDefaultCommandDispatcher,
            params CacheOptions[] options)
        {
            ICacheOptionsProvider cacheOptionsProvider = new CacheOptionsProvider(options);

            resolver.RegisterInstance(cacheOptionsProvider);
            if (replaceDefaultCommandDispatcher)
            {
                resolver.TypeMapping <ICommandDispatcher, CachedCommandDispatcher>();
            }
            else
            {
                resolver.TypeMapping <ICachedCommandDispatcher, CachedCommandDispatcher>();
            }
            resolver.RegisterInstance(cacheKeyProvider);

            return(resolver);
        }