public HybridCachingTest() { _namespace = "hybrid"; var options = new HybridCachingOptions { EnableLogging = false, TopicName = "test_topic", LocalCacheProviderName = "m1", DistributedCacheProviderName = "myredis", BusRetryCount = 1, DefaultExpirationForTtlFailed = 60 }; IServiceCollection services = new ServiceCollection(); services.AddEasyCaching(option => { option.UseInMemory("m1"); option.UseInMemory("m2"); option.UseRedis(config => { config.DBConfig.Endpoints.Add(new Core.Configurations.ServerEndPoint("127.0.0.1", 6379)); config.DBConfig.Database = 5; }, "myredis"); option.UseHybrid(config => { config.EnableLogging = false; config.TopicName = "test_topic"; config.LocalCacheProviderName = "m1"; config.DistributedCacheProviderName = "myredis"; }); option.WithRedisBus(config => { config.Endpoints.Add(new Core.Configurations.ServerEndPoint("127.0.0.1", 6379)); config.Database = 6; }); }); IServiceProvider serviceProvider = services.BuildServiceProvider(); factory = serviceProvider.GetService <IEasyCachingProviderFactory>(); var bus = serviceProvider.GetService <IEasyCachingBus>(); hybridCaching_1 = serviceProvider.GetService <IHybridCachingProvider>(); fakeBus = A.Fake <IEasyCachingBus>(); fakeFactory = A.Fake <IEasyCachingProviderFactory>(); fakeDisProvider = A.Fake <FakeDistributedCachingProvider>(); var myOptions = Options.Create(options); FakeCreatProvider(); fakeHybrid = new HybridCachingProvider("h1", myOptions.Value, fakeFactory, fakeBus); }
/// <summary> /// Uses the hybrid (read config from configuration file). /// </summary> /// <param name="options">Options.</param> /// <param name="configuration">The Configuraion</param> /// <param name="name">The name of this hybrid provider instance.</param> /// <param name="sectionName">The section name in the configuration file.</param> public static EasyCachingOptions UseHybrid( this EasyCachingOptions options , IConfiguration configuration , string name = EasyCachingConstValue.DefaultHybridName , string sectionName = EasyCachingConstValue.HybridSection ) { var config = configuration.GetSection(sectionName); var hybridOptions = new HybridCachingOptions(); config.Bind(hybridOptions); void configure(HybridCachingOptions x) { x.EnableLogging = hybridOptions.EnableLogging; x.DefaultExpirationForTtlFailed = hybridOptions.DefaultExpirationForTtlFailed; x.DistributedCacheProviderName = hybridOptions.DistributedCacheProviderName; x.LocalCacheProviderName = hybridOptions.LocalCacheProviderName; x.TopicName = hybridOptions.TopicName; } return(options.UseHybrid(configure, name)); }