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" }); }
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); }