Example #1
0
        public void ProjectionBasicContQueryTest()
        {
            int joined = 0, updated = 0, leaved = 0;

            object[] uT = null, lT = null;
            try
            {
                IRemoteCache <int, User> userCache = remoteManager.GetCache <int, User>(NAMED_CACHE);
                userCache.Clear();
                Semaphore    s  = new Semaphore(0, 1);
                QueryRequest qr = new QueryRequest();
                qr.QueryString = "select id, name from sample_bank_account.User";
                Event.ContinuousQueryListener <int, object[]> cql = new Event.ContinuousQueryListener <int, object[]>(qr.QueryString);
                cql.JoiningCallback = (int k, object[] v) => { joined++; };
                cql.UpdatedCallback = (int k, object[] v) => {
                    uT = v;
                    updated++;
                };
                cql.LeavingCallback = (int k, object[] v) => {
                    lT = v;
                    leaved++;
                    s.Release();
                };

                userCache.AddContinuousQueryListener(cql);

                User u1 = CreateUser1(userCache);
                User u2 = CreateUser2(userCache);

                userCache.Put(1, u1);
                userCache.Put(2, u2);
                u1.Name    = "Jerry";
                u1.Surname = "Mouse";
                userCache.Put(1, u1);
                userCache.Remove(2);
                s.WaitOne(10000);
                userCache.RemoveContinuousQueryListener(cql);
                userCache.Clear();
                remoteManager.Stop();
            }
            catch (System.Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            Assert.AreEqual(2, joined);
            Assert.AreEqual(1, updated);
            Assert.AreEqual(1, leaved);
            Assert.AreEqual(uT, new object[] { 1, "Jerry" });
            Assert.AreEqual(lT, new object[] { 2, "Spider" });
        }
Example #2
0
        public void EntityBasicContQueryTest()
        {
            int joined = 0, updated = 0, leaved = 0;

            try
            {
                IRemoteCache <int, User> userCache = remoteManager.GetCache <int, User>(NAMED_CACHE);
                userCache.Clear();
                Semaphore    s  = new Semaphore(0, 1);
                QueryRequest qr = new QueryRequest();
                // JpqlString will be deprecated please use QueryString
                // qr.JpqlString = "from sample_bank_account.User";
                qr.QueryString = "from sample_bank_account.User";

                Event.ContinuousQueryListener <int, User> cql = new Event.ContinuousQueryListener <int, User>(qr.QueryString);
                cql.JoiningCallback = (int k, User v) => { joined++; };
                cql.LeavingCallback = (int k, User v) => { leaved++; s.Release(); };
                cql.UpdatedCallback = (int k, User v) => { updated++; };
                userCache.AddContinuousQueryListener(cql);

                User u = CreateUser1(userCache);
                userCache.Put(1, u);
                u.Name    = "Jerry";
                u.Surname = "Mouse";
                userCache.Put(1, u);
                userCache.Remove(1);
                s.WaitOne(10000);
                userCache.RemoveContinuousQueryListener(cql);
                userCache.Clear();
            }
            catch (System.Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            Assert.AreEqual(1, joined);
            Assert.AreEqual(1, updated);
            Assert.AreEqual(1, leaved);
        }