clicache/integration-test/CachelessTestsN.cs (114 lines of code) (raw):

/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ using System; using System.Threading; namespace Apache.Geode.Client.UnitTests { using NUnit.Framework; using Apache.Geode.DUnitFramework; using Apache.Geode.Client; [TestFixture] [Category("generics")] public class CachelessTests : UnitTests { private const string RegionName = "DistRegionAck"; private RegionWrapper m_regionw; private TallyListener<object, object> m_listener; private UnitProcess m_client1, m_client2, m_client3, m_client4; protected override ClientBase[] GetClients() { m_client1 = new UnitProcess(); m_client2 = new UnitProcess(); m_client3 = new UnitProcess(); m_client4 = new UnitProcess(); return new ClientBase[] { m_client1, m_client2, m_client3, m_client4 }; } public void CreateRegion(string locators, bool caching, bool listener) { if (listener) { m_listener = new TallyListener<object, object>(); } else { m_listener = null; } IRegion<object, object> region = null; region = CacheHelper.CreateTCRegion_Pool<object, object>(RegionName, true, caching, m_listener, locators, "__TESTPOOL1_", true); m_regionw = new RegionWrapper(region); } public void NoEvents() { Util.Log("Verifying TallyListener has received nothing."); Assert.AreEqual(0, m_listener.Creates, "Should be no creates"); Assert.AreEqual(0, m_listener.Updates, "Should be no updates"); Assert.IsNull(m_listener.LastKey, "Should be no key"); Assert.IsNull(m_listener.LastValue, "Should be no value"); } public void SendPut(int key, int val) { m_regionw.Put(key, val); } public void CheckEmpty() { Util.Log("check s2p2-subset is still empty."); Thread.Sleep(100); //let it do receiving... m_regionw.Test(1, -1); Assert.AreEqual(0, m_listener.Creates, "Should be no creates"); Assert.AreEqual(0, m_listener.Updates, "Should be no updates"); m_regionw.Put(2, 1); Assert.AreEqual(1, m_listener.ExpectCreates(1), "Should have been 1 create."); Assert.AreEqual(0, m_listener.ExpectUpdates(0), "Should be no updates"); } void runCacheless() { CacheHelper.SetupJavaServers(true, "cacheserver_notify_subscription.xml"); CacheHelper.StartJavaLocator(1, "GFELOC"); Util.Log("Locator started"); CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1); Util.Log("Cacheserver 1 started."); Util.Log("Creating region in s1p1-pusher, no-ack, no-cache, no-listener"); m_client1.Call(CreateRegion, CacheHelper.Locators, false, true); Util.Log("Creating region in s1p2-listener, no-ack, no-cache, with-listener"); m_client2.Call(CreateRegion, CacheHelper.Locators, false, true); Util.Log("Creating region in s2p1-storage, no-ack, cache, no-listener"); m_client3.Call(CreateRegion, CacheHelper.Locators, true, true); Util.Log("Creating region in s2p2-subset, no-ack, cache, no-listener"); m_client4.Call(CreateRegion, CacheHelper.Locators, true, true); Util.Log("createRegion seems to return before peers have handshaked... waiting a while."); Thread.Sleep(10000); Util.Log("tired of waiting...."); m_client2.Call(NoEvents); Util.Log("put(1,1) from s1p1-pusher"); m_client1.Call(SendPut, 1, 1); Util.Log("update from s2p1-storage"); m_client3.Call(SendPut, 1, 2); m_client2.Call(CheckEmpty); m_client1.Call(CacheHelper.Close); m_client2.Call(CacheHelper.Close); m_client3.Call(CacheHelper.Close); m_client4.Call(CacheHelper.Close); CacheHelper.StopJavaServer(1); Util.Log("Cacheserver 1 stopped."); CacheHelper.StopJavaLocator(1); Util.Log("Locator stopped"); CacheHelper.ClearEndpoints(); CacheHelper.ClearLocators(); } [TearDown] public override void EndTest() { base.EndTest(); } [Test] public void Cacheless() { runCacheless(); } } }