コード例 #1
0
        protected void TestPutReplaceWithVersion(IRemoteCache <string, string> cache)
        {
            cache.Put(K1, V1);
            IVersionedValue <string> value = cache.GetVersioned(K1);
            ulong version = value.GetVersion();

            cache.ReplaceWithVersion(K1, V2, version);
            value = cache.GetVersioned(K1);
            Assert.AreEqual(V2, value.GetValue());
            Assert.IsTrue(value.GetVersion() != version);
        }
コード例 #2
0
        protected void TestPutReplaceWithVersionAsync(IRemoteCache <string, string> cache)
        {
            cache.Put(K1, V1);
            IVersionedValue <string> value = cache.GetVersioned(K1);
            ulong       version            = value.GetVersion();
            Task <bool> result             = cache.ReplaceWithVersionAsync(K1, V2, version);

            result.Wait(5000);
            value = cache.GetVersioned(K1);
            Assert.AreEqual(V2, value.GetValue());
            Assert.IsTrue(value.GetVersion() != version);
        }
コード例 #3
0
        protected void TestPutRemoveWithVersion(IRemoteCache <string, string> cache)
        {
            cache.Put(K1, V1);
            IVersionedValue <string> value = cache.GetVersioned(K1);
            ulong version = value.GetVersion();

            cache.RemoveWithVersion(K1, version);
            value = cache.GetVersioned(K1);
            if (value != null)
            {
                Assert.AreNotEqual(value.GetVersion(), version);
            }
        }
コード例 #4
0
        protected void TestPutRemoveWithVersionAsync(IRemoteCache <string, string> cache)
        {
            cache.Put(K1, V1);
            IVersionedValue <string> value = cache.GetVersioned(K1);
            ulong       version            = value.GetVersion();
            Task <bool> result             = cache.RemoveWithVersionAsync(K1, version);

            result.Wait(5000);
            value = cache.GetVersioned(K1);
            if (value != null)
            {
                Assert.AreNotEqual(value.GetVersion(), version);
            }
        }
コード例 #5
0
        protected void TestPutGetVersioned(IRemoteCache <string, string> cache)
        {
            cache.Put(K1, V1);
            IVersionedValue <string> value = cache.GetVersioned(K1);

            Assert.AreEqual(V1, value.GetValue());
            Assert.AreNotEqual(0, value.GetVersion());
        }
コード例 #6
0
        public void ConditionalEventsTest()
        {
            LoggingEventListener <string> listener = new LoggingEventListener <string>();
            IRemoteCache <string, string> cache    = remoteManager.GetCache <string, string>();

            Event.ClientListener <string, string> cl = new Event.ClientListener <string, string>();
            try
            {
                cache.Clear();
                cl.filterFactoryName    = "";
                cl.converterFactoryName = "";
                cl.AddListener(listener.CreatedEventAction);
                cl.AddListener(listener.ModifiedEventAction);
                cl.AddListener(listener.RemovedEventAction);
                cl.AddListener(listener.ExpiredEventAction);
                cl.AddListener(listener.CustomEventAction);
                cache.AddClientListener(cl, new string[] { }, new string[] { }, null);
                AssertNoEvents(listener);
                cache.PutIfAbsent("key1", "value1");
                AssertOnlyCreated("key1", listener);
                cache.PutIfAbsent("key1", "value1again");
                AssertNoEvents(listener);
                cache.Replace("key1", "modified");
                AssertOnlyModified("key1", listener);
                cache.ReplaceWithVersion("key1", "modified", 0);
                AssertNoEvents(listener);
                IVersionedValue <string> versioned = cache.GetVersioned("key1");
                //TODO: this needs conversion from long to ulong (is it a bug?)
                cache.ReplaceWithVersion("key1", "modified", versioned.GetVersion());
                AssertOnlyModified("key1", listener);
                cache.RemoveWithVersion("key1", 0);
                AssertNoEvents(listener);
                versioned = cache.GetVersioned("key1");
                cache.RemoveWithVersion("key1", versioned.GetVersion());
                AssertOnlyRemoved("key1", listener);
            }
            finally
            {
                if (cl.listenerId != null)
                {
                    cache.RemoveClientListener(cl);
                }
            }
        }
コード例 #7
0
        public void GetVersionedTest()
        {
            String key = UniqueKey.NextKey();

            cache.Put(key, "uranium");
            IVersionedValue <String> previous = cache.GetVersioned(key);

            cache.Put(key, "rubidium");

            IVersionedValue <String> current = cache.GetVersioned(key);

            Assert.AreEqual("rubidium", current.GetValue());

            Assert.AreNotEqual(previous.GetVersion(), current.GetVersion());
        }
コード例 #8
0
 protected void TestGetVersioned(IRemoteCache <string, string> cache)
 {
     Assert.IsNull(cache.GetVersioned(NON_EXISTENT_KEY));
 }