public void Redis_Multiple_PubSub_Remove() { // arrange var item = new CacheItem <object>(Guid.NewGuid().ToString(), "something"); var channelName = Guid.NewGuid().ToString(); // act/assert RedisTests.RunMultipleCaches( (cacheA, cacheB) => { cacheA.Add(item); cacheB.Get(item.Key).Should().Be(item.Value); cacheB.Remove(item.Key); Thread.Sleep(10); }, (cache) => { int tries = 0; object value = null; do { tries++; Thread.Sleep(100); value = cache.GetCacheItem(item.Key); }while (value != null && tries < 50); value.Should().BeNull(); }, 1, TestManagers.CreateRedisAndDicCacheWithBackplane(6, true, channelName), TestManagers.CreateRedisAndDicCacheWithBackplane(6, true, channelName), TestManagers.CreateRedisCache(6), TestManagers.CreateRedisAndDicCacheWithBackplane(6, true, channelName)); }
public void Redis_Multiple_PubSub_Change() { // arrange var item = new CacheItem <object>(Guid.NewGuid().ToString(), "something"); // act/assert RedisTests.RunMultipleCaches( (cacheA, cacheB) => { cacheA.Put(item); Thread.Sleep(1); var value = cacheB.Get(item.Key); value.Should().Be(item.Value); cacheB.Put(item.Key, "new value"); }, (cache) => { Thread.Sleep(1); var value = cache.Get(item.Key); value.Should().Be("new value"); }, 3, TestManagers.CreateRedisAndSystemCacheWithBackPlate(3), TestManagers.CreateRedisAndSystemCacheWithBackPlate(3), TestManagers.CreateRedisCache(3), TestManagers.CreateRedisAndSystemCacheWithBackPlate(3)); }
public void Redis_Multiple_PubSub_Remove() { // arrange var item = new CacheItem <object>(Guid.NewGuid().ToString(), "something"); // act/assert RedisTests.RunMultipleCaches( (cacheA, cacheB) => { cacheA.Add(item); cacheB.Get(item.Key).Should().Be(item.Value); cacheB.Remove(item.Key); }, (cache) => { Thread.Sleep(10); var value = cache.GetCacheItem(item.Key); value.Should().BeNull(); }, 2, TestManagers.CreateRedisAndSystemCacheWithBackPlate(6), TestManagers.CreateRedisAndSystemCacheWithBackPlate(6), TestManagers.CreateRedisCache(6), TestManagers.CreateRedisAndSystemCacheWithBackPlate(6)); }
public async Task Redis_Multiple_PubSub_ClearRegion() { // arrange var item = new CacheItem <object>(Guid.NewGuid().ToString(), Guid.NewGuid().ToString(), "something"); var channelName = Guid.NewGuid().ToString(); // act/assert await RedisTests.RunMultipleCaches( async (cacheA, cacheB) => { cacheA.Add(item); cacheB.Get(item.Key, item.Region).Should().Be(item.Value); cacheB.ClearRegion(item.Region); await Task.Delay(0); }, async (cache) => { cache.Get(item.Key, item.Region).Should().BeNull(); await Task.Delay(0); }, 2, TestManagers.CreateRedisCache(5), TestManagers.CreateRedisCache(5), TestManagers.CreateRedisCache(5), TestManagers.CreateRedisCache(5)); }
public void Redis_Multiple_PubSub_Change() { // arrange string fileName = BaseCacheManagerTest.GetCfgFileName(@"/Configuration/configuration.valid.allFeatures.config"); var channelName = Guid.NewGuid().ToString(); // redis config name must be same for all cache handles, configured via file and via code // otherwise the pub sub channel name is different string cacheName = "redisConfigFromConfig"; RedisConfigurations.LoadConfiguration(fileName, RedisConfigurationSection.DefaultSectionName); var cfg = (CacheManagerConfiguration)ConfigurationBuilder.LoadConfigurationFile(fileName, cacheName); cfg.BackplaneChannelName = channelName; var cfgCache = CacheFactory.FromConfiguration <object>(cfg); var item = new CacheItem <object>(Guid.NewGuid().ToString(), "something"); // act/assert RedisTests.RunMultipleCaches( (cacheA, cacheB) => { cacheA.Put(item); cacheA.Get(item.Key).Should().Be("something"); Thread.Sleep(10); var value = cacheB.Get(item.Key); value.Should().Be(item.Value, cacheB.ToString()); cacheB.Put(item.Key, "new value"); }, (cache) => { int tries = 0; object value = null; do { tries++; Thread.Sleep(100); value = cache.Get(item.Key); }while (value.ToString() != "new value" && tries < 10); value.Should().Be("new value", cache.ToString()); }, 1, TestManagers.CreateRedisAndDicCacheWithBackplane(113, true, channelName, Serializer.Json), cfgCache, TestManagers.CreateRedisCache(113, false, Serializer.Json), TestManagers.CreateRedisAndDicCacheWithBackplane(113, true, channelName, Serializer.Json)); }
////[Trait("category", "Unreliable")] public void Redis_Multiple_PubSub_Change() { // arrange string fileName = BaseCacheManagerTest.GetCfgFileName(@"/Configuration/configuration.valid.allFeatures.config"); var channelName = Guid.NewGuid().ToString(); // redis config name must be same for all cache handles, configured via file and via code // otherwise the pub sub channel name is different string cacheName = "redisConfig"; RedisConfigurations.LoadConfiguration(fileName, RedisConfigurationSection.DefaultSectionName); var cfg = ConfigurationBuilder.LoadConfigurationFile(fileName, cacheName); cfg.BackPlateChannelName = channelName; var cfgCache = CacheFactory.FromConfiguration <object>(cfg); var item = new CacheItem <object>(Guid.NewGuid().ToString(), "something"); // act/assert RedisTests.RunMultipleCaches( (cacheA, cacheB) => { cacheA.Put(item); Thread.Sleep(10); var value = cacheB.Get(item.Key); value.Should().Be(item.Value, cacheB.ToString()); cacheB.Put(item.Key, "new value"); }, (cache) => { Thread.Sleep(12); var value = cache.Get(item.Key); value.Should().Be("new value", cache.ToString()); }, 2, TestManagers.CreateRedisAndSystemCacheWithBackPlate(69, true, channelName), cfgCache, TestManagers.CreateRedisCache(69), TestManagers.CreateRedisAndSystemCacheWithBackPlate(69, true, channelName)); }
public void Redis_Multiple_PubSub_ClearRegion() { // arrange var item = new CacheItem <object>(Guid.NewGuid().ToString(), "something", Guid.NewGuid().ToString()); // act/assert RedisTests.RunMultipleCaches( (cacheA, cacheB) => { cacheA.Add(item); cacheB.Get(item.Key, item.Region).Should().Be(item.Value); cacheB.ClearRegion(item.Region); }, (cache) => { cache.Get(item.Key, item.Region).Should().BeNull(); }, 10, TestManagers.CreateRedisAndSystemCacheWithBackPlate(5), TestManagers.CreateRedisAndSystemCacheWithBackPlate(5), TestManagers.CreateRedisCache(5), TestManagers.CreateRedisAndSystemCacheWithBackPlate(5)); }
public void Redis_Multiple_PubSub_Clear() { // arrange var item = new CacheItem <object>(Guid.NewGuid().ToString(), "something"); var channelName = Guid.NewGuid().ToString(); // act/assert RedisTests.RunMultipleCaches( (cacheA, cacheB) => { cacheA.Add(item); cacheB.Get(item.Key).Should().Be(item.Value); cacheB.Clear(); }, (cache) => { cache.Get(item.Key).Should().BeNull(); }, 2, TestManagers.CreateRedisAndDicCacheWithBackplane(444, true, channelName), TestManagers.CreateRedisAndDicCacheWithBackplane(444, true, channelName), TestManagers.CreateRedisCache(444), TestManagers.CreateRedisAndDicCacheWithBackplane(444, true, channelName)); }