public CacheOptionsProviderTests() { KeyGenerator = Substitute.For <ICacheOptionsKeyGenerator>(); ServiceProvider = Substitute.For <IServiceProvider>(); Sut = new CacheOptionsProvider(KeyGenerator, ServiceProvider); MethodInfo = Substitute.For <MethodInfo>(); }
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); }
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); }
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); }