public void TestCacheTriggerListener() { INamedCache cache = CacheFactory.GetCache(CacheName); cache.Clear(); FilterTrigger ftRollback = new FilterTrigger(NeverFilter.Instance, FilterTrigger.ActionCode.Rollback); FilterTrigger ftIgnore = new FilterTrigger(NeverFilter.Instance, FilterTrigger.ActionCode.Ignore); FilterTrigger ftRemove = new FilterTrigger(NeverFilter.Instance, FilterTrigger.ActionCode.Remove); IDictionary dict = new Hashtable(); for (int i = 0; i < 10; i++) { dict.Add(GetKeyObject("key" + i), "value" + i); } cache.InsertAll(dict); CacheTriggerListener listener = new CacheTriggerListener(ftIgnore); cache.AddCacheListener(listener); Assert.AreEqual(cache[GetKeyObject("key1")], "value1"); cache[GetKeyObject("key1")] = "newvalue"; Assert.AreEqual(cache[GetKeyObject("key1")], "value1"); cache.RemoveCacheListener(listener); listener = new CacheTriggerListener(ftRemove); cache.AddCacheListener(listener); Assert.IsTrue(cache.Contains(GetKeyObject("key1"))); cache[GetKeyObject("key1")] = "newvalue"; Assert.IsFalse(cache.Contains(GetKeyObject("key1"))); cache.RemoveCacheListener(listener); listener = new CacheTriggerListener(ftRollback); cache.AddCacheListener(listener); Assert.AreEqual(cache[GetKeyObject("key3")], "value3"); Exception e = null; try { cache[GetKeyObject("key3")] = "newvalue"; } catch (Exception ex) { e = ex; } Assert.IsNotNull(e); Assert.AreEqual(cache[GetKeyObject("key3")], "value3"); cache.RemoveCacheListener(listener); CacheFactory.Shutdown(); }
public virtual void TestNamedCacheLock() { INamedCache cache = CacheFactory.GetCache(CacheName); string key = "testNamedCacheInterfaceMethodsKey"; string value = "testNamedCacheInterfaceMethodsValue"; object[] keys = { GetKeyObject("key1"), GetKeyObject("key2"), GetKeyObject("key3") }; string[] values = { "value1", "value2", "value3" }; cache.Clear(); Assert.IsTrue(cache.Count == 0); cache.Add(GetKeyObject(key), value); Assert.AreEqual(cache.Count, 1); Assert.AreEqual(cache[GetKeyObject(key)], value); Assert.IsTrue(cache.Contains(GetKeyObject(key))); cache.Lock(key); Assert.AreEqual(cache[GetKeyObject(key)], value); cache.Unlock(key); cache.Lock(key); Assert.AreEqual(cache[GetKeyObject(key)], value); cache.Unlock(key); CacheFactory.ReleaseCache(cache); CacheFactory.Shutdown(); }
public void TestNamedCacheMethods() { INamedCache cache = CacheFactory.GetCache(CacheName); string key = "testNamedCacheInterfaceMethodsKey"; string value = "testNamedCacheInterfaceMethodsValue"; object[] keys = { GetKeyObject("key1"), GetKeyObject("key2"), GetKeyObject("key3") }; string[] values = { "value1", "value2", "value3" }; cache.Clear(); Assert.IsTrue(cache.Count == 0); cache.Add(GetKeyObject(key), value); Assert.AreEqual(cache.Count, 1); Assert.AreEqual(cache[GetKeyObject(key)], value); Assert.IsTrue(cache.Contains(GetKeyObject(key))); object old = cache.Insert(keys[0], values[0]); Assert.IsNull(old); Assert.AreEqual(cache[keys[0]], values[0]); IDictionary h = new Hashtable(); h.Add(keys[0], values[0]); h.Add(keys[1], values[1]); h.Add(keys[2], values[2]); cache.InsertAll(h); IList list = new ArrayList(keys); IDictionary map = cache.GetAll(list); Assert.AreEqual(map.Count, list.Count); Assert.AreEqual(cache[keys[1]], map[keys[1]]); cache.Remove(GetKeyObject(key)); Assert.IsNull(cache[GetKeyObject(key)]); Binary bin = new Binary(new byte[] { 1, 2, 3 }); cache.Insert(GetKeyObject("key4"), bin); object o = cache[GetKeyObject("key4")]; Assert.IsNotNull(o); Assert.IsInstanceOf(typeof(Binary), o); Assert.AreEqual(bin.Length, ((Binary)o).Length); CacheFactory.ReleaseCache(cache); CacheFactory.Shutdown(); }
public void TestPutIfAbsent() { INamedCache cache = CacheFactory.GetCache(CacheName); cache.Clear(); Hashtable ht = new Hashtable(); ht.Add("key4", 0); ht.Add("key3", -10); ht.Add("key2", 45); ht.Add("key1", 398); cache.InsertAll(ht); object result = cache.InsertIfAbsent("key1", 400); Assert.AreEqual(398, result); result = cache.InsertIfAbsent("key5", 400); Assert.AreEqual(null, result); Assert.IsTrue(cache.Contains("key5")); }
public virtual void TestLoadBalancer() { // test that the two remote services connect to a different // proxy service var service1 = (ICacheService)CacheFactory .GetService("ExtendTcpCacheService"); var service2 = (ICacheService)CacheFactory .GetService("ExtendTcpCacheService2"); INamedCache cache1 = service1.EnsureCache("local-test"); INamedCache cache2 = service2.EnsureCache("local-test"); cache1.Clear(); cache2.Clear(); Object key = "key"; cache1[key] = "value"; Assert.IsFalse(cache2.Contains(key), "connected to the same proxy service"); CacheFactory.Shutdown(); }