clicache/integration-test/ThinClientRegionTestsN.cs (878 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.Collections.Generic; using System.Collections.ObjectModel; using System.Text; using System.Threading; using Apache.Geode.DUnitFramework; using NUnit.Framework; namespace Apache.Geode.Client.UnitTests { [Serializable] public class CustomPartitionResolver<TValue> : IPartitionResolver<int, TValue> { public string GetName() { return "CustomPartitionResolver"; } public object GetRoutingObject(EntryEvent<int, TValue> key) { Util.Log("CustomPartitionResolver::GetRoutingObject"); return key.Key + 5; } public static CustomPartitionResolver<TValue> Create() { return new CustomPartitionResolver<TValue>(); } } [Serializable] public class CustomPartitionResolver1<TValue> : IFixedPartitionResolver<int, TValue> { public string GetName() { return "CustomPartitionResolver1"; } public object GetRoutingObject(EntryEvent<int, TValue> key) { Util.Log("CustomPartitionResolver1::GetRoutingObject"); var nkey = key.Key; return nkey + 5; } public static CustomPartitionResolver1<TValue> Create() { return new CustomPartitionResolver1<TValue>(); } public string GetPartitionName(EntryEvent<int, TValue> entryEvent) { Util.Log("CustomPartitionResolver1::GetPartitionName"); var newkey = entryEvent.Key % 6; if (newkey == 0) { return "P1"; } if (newkey == 1) { return "P2"; } if (newkey == 2) { return "P3"; } if (newkey == 3) { return "P4"; } if (newkey == 4) { return "P5"; } if (newkey == 5) { return "P6"; } return "Invalid"; } } [Serializable] public class CustomPartitionResolver2<TValue> : IFixedPartitionResolver<int, TValue> { public string GetName() { return "CustomPartitionResolver2"; } public object GetRoutingObject(EntryEvent<int, TValue> key) { Util.Log("CustomPartitionResolver2::GetRoutingObject"); return key.Key + 4; } public static CustomPartitionResolver2<TValue> Create() { return new CustomPartitionResolver2<TValue>(); } public string GetPartitionName(EntryEvent<int, TValue> entryEvent) { Util.Log("CustomPartitionResolver2::GetPartitionName"); var key = entryEvent.Key.ToString(); var numKey = Convert.ToInt32(key); var newkey = numKey % 6; if (newkey == 0) { return "P1"; } if (newkey == 1) { return "P2"; } if (newkey == 2) { return "P3"; } if (newkey == 3) { return "P4"; } if (newkey == 4) { return "P5"; } if (newkey == 5) { return "P6"; } return "Invalid"; } } [Serializable] public class CustomPartitionResolver3<TValue> : IFixedPartitionResolver<int, TValue> { public string GetName() { return "CustomPartitionResolver3"; } public object GetRoutingObject(EntryEvent<int, TValue> key) { Util.Log("CustomPartitionResolver3::GetRoutingObject"); return key.Key % 5; } public static CustomPartitionResolver3<TValue> Create() { return new CustomPartitionResolver3<TValue>(); } public string GetPartitionName(EntryEvent<int, TValue> entryEvent) { Util.Log("CustomPartitionResolver3::GetPartitionName"); var key = entryEvent.Key.ToString(); var numKey = Convert.ToInt32(key); var newkey = numKey % 3; if (newkey == 0) { return "P1"; } if (newkey == 1) { return "P2"; } if (newkey == 2) { return "P3"; } return "Invalid"; } } public class TradeKey : ICacheableKey { public int MId; public int MAccountid; public TradeKey() { } public TradeKey(int id) { MId = id; MAccountid = 1 + id; } public TradeKey(int id, int accId) { MId = id; MAccountid = accId; } public void FromData(DataInput input) { MId = input.ReadInt32(); MAccountid = input.ReadInt32(); } public void ToData(DataOutput output) { output.WriteInt32(MId); output.WriteInt32(MAccountid); } public ulong ObjectSize { get { uint objectSize = 0; objectSize += sizeof(int); objectSize += sizeof(int); return objectSize; } } public static ISerializable CreateDeserializable() { return new TradeKey(); } public bool Equals(ICacheableKey other) { if (other == null) return false; var bc = other as TradeKey; if (bc == null) return false; if (bc == this) return true; if (bc.MId == MId) { return true; } return false; } public override int GetHashCode() { return base.GetHashCode(); } } [Serializable] public class TradeKeyResolver : IPartitionResolver<TradeKey, object> { public string GetName() { return "TradeKeyResolver"; } public object GetRoutingObject(EntryEvent<TradeKey, object> key) { Util.Log("TradeKeyResolver::GetRoutingObject"); var tkey = key.Key; Util.Log("TradeKeyResolver::GetRoutingObject done {0} ", tkey.MId + 5); return tkey.MId + 5; } public static TradeKeyResolver Create() { return new TradeKeyResolver(); } } [TestFixture] [Category("group4")] [Category("unicast_only")] [Category("generics")] public class ThinClientRegionTests : ThinClientRegionSteps { #region Private members private UnitProcess _client1, _client2; #endregion protected override ClientBase[] GetClients() { _client1 = new UnitProcess(); _client2 = new UnitProcess(); return new ClientBase[] { _client1, _client2 }; } [TestFixtureTearDown] public override void EndTests() { CacheHelper.StopJavaServers(); base.EndTests(); } [TearDown] public override void EndTest() { try { _client1.Call(DestroyRegions); _client2.Call(DestroyRegions); CacheHelper.ClearEndpoints(); CacheHelper.ClearLocators(); } finally { CacheHelper.StopJavaServers(); CacheHelper.StopJavaLocators(); } base.EndTest(); } private void EmptyByteArrayTest() { var region = CacheHelper.GetVerifyRegion<int, byte[]>(RegionNames3[0]); var regServ = region.RegionService; var cache = regServ as Cache; Assert.IsNotNull(cache); region[0] = new byte[0]; Util.Log("Put empty byteArray in region"); Assert.AreEqual(0, region[0].Length); region[1] = new byte[2]; Util.Log("Put non empty byteArray in region"); Assert.AreEqual(2, region[1].Length); region[2] = Encoding.ASCII.GetBytes("TestString"); Util.Log("Put string in region"); Assert.AreEqual(0, "TestString".CompareTo(Encoding.ASCII.GetString(region[2]))); Util.Log("EmptyByteArrayTest completed successfully"); } private void CheckAndPutKey() { var region0 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[0]); var regServ = region0.RegionService; var cache = regServ as Cache; Assert.IsNotNull(cache); if (region0.ContainsKey("keyKey01")) { Assert.Fail("Did not expect keyKey01 to be on Server"); } region0["keyKey01"] = "valueValue01"; if (!region0.ContainsKey("keyKey01")) { Assert.Fail("Expected keyKey01 to be on Server"); } } private void GetInterests() { string[] testregex = { "Key-*1", "Key-*2", "Key-*3", "Key-*4", "Key-*5", "Key-*6" }; var region0 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[0]); region0.GetSubscriptionService().RegisterRegex(testregex[0]); region0.GetSubscriptionService().RegisterRegex(testregex[1]); ICollection<object> myCollection1 = new Collection<object>(); myCollection1.Add(m_keys[0]); region0.GetSubscriptionService().RegisterKeys(myCollection1); ICollection<object> myCollection2 = new Collection<object>(); myCollection2.Add(m_keys[1]); region0.GetSubscriptionService().RegisterKeys(myCollection2); var regvCol = region0.GetSubscriptionService().GetInterestListRegex(); var regv = new string[regvCol.Count]; regvCol.CopyTo(regv, 0); if (regv.Length != 2) { Assert.Fail("regex list length is not 2"); } for (var i = 0; i < regv.Length; i++) { Util.Log("regv[{0}]={1}", i, regv[i]); var found = false; for (var j = 0; j < regv.Length; j++) { if (regv[i].Equals(testregex[j])) { found = true; break; } } if (!found) { Assert.Fail("Unexpected regex"); } } var keyvCol = region0.GetSubscriptionService().GetInterestList(); var keyv = new string[keyvCol.Count]; keyvCol.CopyTo(keyv, 0); if (keyv.Length != 2) { Assert.Fail("interest list length is not 2"); } for (var i = 0; i < keyv.Length; i++) { Util.Log("keyv[{0}]={1}", i, keyv[i]); var found = false; for (var j = 0; j < keyv.Length; j++) { if (keyv[i].Equals(m_keys[j])) { found = true; break; } } if (!found) { Assert.Fail("Unexpected key"); } } } private void RunDistOps() { CacheHelper.SetupJavaServers(true, "cacheserver.xml"); CacheHelper.StartJavaLocator(1, "GFELOC"); Util.Log("Locator 1 started."); CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1); Util.Log("Cacheserver 1 started."); _client1.Call(CreateNonExistentRegion, CacheHelper.Locators); _client1.Call(CreateTCRegions_Pool, RegionNames, CacheHelper.Locators, "__TESTPOOL1_", false); Util.Log("StepOne (pool locators) complete."); _client2.Call(CreateTCRegions_Pool, RegionNames, CacheHelper.Locators, "__TESTPOOL1_", false); Util.Log("StepTwo (pool locators) complete."); _client1.Call(StepThree); Util.Log("StepThree complete."); _client2.Call(StepFour); Util.Log("StepFour complete."); _client1.Call(CheckServerKeys); _client1.Call(StepFive, true); Util.Log("StepFive complete."); _client2.Call(StepSix, true); Util.Log("StepSix complete."); _client1.Call(Close); Util.Log("Client 1 closed"); _client2.Call(Close); Util.Log("Client 2 closed"); CacheHelper.StopJavaServer(1); Util.Log("Cacheserver 1 stopped."); CacheHelper.StopJavaLocator(1); Util.Log("Locator 1 stopped."); CacheHelper.ClearEndpoints(); CacheHelper.ClearLocators(); } private void RunDistOps2() { CacheHelper.SetupJavaServers(true, "cacheserver.xml", "cacheserver2.xml", "cacheserver3.xml"); CacheHelper.StartJavaLocator(1, "GFELOC"); Util.Log("Locator 1 started."); CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1); Util.Log("Cacheserver 1 started."); CacheHelper.StartJavaServerWithLocators(2, "GFECS2", 1); Util.Log("Cacheserver 2 started."); CacheHelper.StartJavaServerWithLocators(3, "GFECS3", 1); Util.Log("Cacheserver 3 started."); _client1.Call(CreateTCRegions_Pool, RegionNames, CacheHelper.Locators, "__TESTPOOL1_", false); Util.Log("StepOne (pool locators) complete."); _client2.Call(CreateTCRegions_Pool, RegionNames, CacheHelper.Locators, "__TESTPOOL1_", false); Util.Log("StepTwo (pool locators) complete."); _client1.Call(StepThree); Util.Log("StepThree complete."); _client2.Call(StepFour); Util.Log("StepFour complete."); _client1.Call(StepFive, true); Util.Log("StepFive complete."); _client2.Call(StepSix, true); Util.Log("StepSix complete."); //m_client1.Call(GetAll, pool, locator); _client1.Call(Close); Util.Log("Client 1 closed"); _client2.Call(Close); Util.Log("Client 2 closed"); CacheHelper.StopJavaServer(1); Util.Log("Cacheserver 1 stopped."); CacheHelper.StopJavaServer(2); Util.Log("Cacheserver 2 stopped."); CacheHelper.StopJavaServer(3); Util.Log("Cacheserver 3 stopped."); CacheHelper.StopJavaLocator(1); Util.Log("Locator 1 stopped."); CacheHelper.ClearEndpoints(); CacheHelper.ClearLocators(); } private void RunNotification() { CacheHelper.SetupJavaServers(true, "cacheserver.xml"); CacheHelper.StartJavaLocator(1, "GFELOC"); CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1); Util.Log("Cacheserver 1 started."); _client1.Call(CreateTCRegions_Pool, RegionNames, CacheHelper.Locators, "__TESTPOOL1_", true); Util.Log("StepOne (pool locators) complete."); _client2.Call(CreateTCRegions_Pool, RegionNames, CacheHelper.Locators, "__TESTPOOL1_", true); Util.Log("StepTwo (pool locators) complete."); _client1.Call(RegisterAllKeysR0WithoutValues); _client1.Call(RegisterAllKeysR1WithoutValues); _client2.Call(RegisterAllKeysR0WithoutValues); _client2.Call(RegisterAllKeysR1WithoutValues); _client1.Call(StepThree); Util.Log("StepThree complete."); _client2.Call(StepFour); Util.Log("StepFour complete."); _client1.Call(StepFive, true); Util.Log("StepFive complete."); _client2.Call(StepSixNotify, false); Util.Log("StepSix complete."); _client1.Call(StepSevenNotify, false); Util.Log("StepSeven complete."); _client2.Call(StepEightNotify, false); Util.Log("StepEight complete."); _client1.Call(StepNineNotify, false); Util.Log("StepNine complete."); _client2.Call(StepTen); Util.Log("StepTen complete."); _client1.Call(StepEleven); Util.Log("StepEleven complete."); _client1.Call(Close); Util.Log("Client 1 closed"); _client2.Call(Close); Util.Log("Client 2 closed"); CacheHelper.StopJavaServer(1); Util.Log("Cacheserver 1 stopped."); CacheHelper.StopJavaLocator(1); Util.Log("Locator 1 stopped."); CacheHelper.ClearEndpoints(); CacheHelper.ClearLocators(); } private void RunPartitionResolver() { CacheHelper.SetupJavaServers(true, "cacheserver1_pr.xml", "cacheserver2_pr.xml", "cacheserver3_pr.xml"); CacheHelper.StartJavaLocator(1, "GFELOC"); Util.Log("Locator 1 started."); CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1); Util.Log("Cacheserver 1 started."); CacheHelper.StartJavaServerWithLocators(2, "GFECS2", 1); Util.Log("Cacheserver 2 started."); CacheHelper.StartJavaServerWithLocators(3, "GFECS3", 1); Util.Log("Cacheserver 3 started."); var putGetTest = new PutGetTests(); // Create and Add partition resolver to the regions. //CustomPartitionResolver<object> cpr = CustomPartitionResolver<object>.Create(); _client1.Call(CreateTCRegions_Pool2_WithPartitionResolver, RegionNames, CacheHelper.Locators, "__TESTPOOL1_", false, true); Util.Log("Client 1 (pool locators) regions created"); _client2.Call(CreateTCRegions_Pool2_WithPartitionResolver, RegionNames, CacheHelper.Locators, "__TESTPOOL1_", false, true); Util.Log("Client 2 (pool locators) regions created"); _client1.Call(putGetTest.SetRegion, RegionNames[1]); _client2.Call(putGetTest.SetRegion, RegionNames[1]); putGetTest.DoPRSHPartitionResolverTasks(_client1, _client2, RegionNames[1]); _client1.Call(putGetTest.SetRegion, RegionNames[0]); _client2.Call(putGetTest.SetRegion, RegionNames[0]); putGetTest.DoPRSHPartitionResolverTasks(_client1, _client2, RegionNames[0]); _client1.Call(Close); Util.Log("Client 1 closed"); _client2.Call(Close); Util.Log("Client 2 closed"); CacheHelper.StopJavaServer(1); Util.Log("Cacheserver 1 stopped."); CacheHelper.StopJavaServer(2); Util.Log("Cacheserver 2 stopped."); CacheHelper.StopJavaServer(3); Util.Log("Cacheserver 3 stopped."); CacheHelper.StopJavaLocator(1); Util.Log("Locator 1 stopped."); CacheHelper.ClearEndpoints(); CacheHelper.ClearLocators(); } private void RunTradeKeyResolver() { CacheHelper.SetupJavaServers(true, "cacheserver1_TradeKey.xml", "cacheserver2_TradeKey.xml", "cacheserver3_TradeKey.xml"); CacheHelper.StartJavaLocator(1, "GFELOC"); Util.Log("Locator 1 started."); CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1); Util.Log("Cacheserver 1 started."); CacheHelper.StartJavaServerWithLocators(2, "GFECS2", 1); Util.Log("Cacheserver 2 started."); CacheHelper.StartJavaServerWithLocators(3, "GFECS3", 1); Util.Log("Cacheserver 3 started."); _client1.Call(CreateTCRegion2, TradeKeyRegion, true, true, TradeKeyResolver.Create(), CacheHelper.Locators, true); Util.Log("Client 1 (pool locators) region created"); var putGetTest = new PutGetTests(); _client1.Call(putGetTest.DoPRSHTradeResolverTasks, TradeKeyRegion); _client1.Call(Close); Util.Log("Client 1 closed"); CacheHelper.StopJavaServer(1); Util.Log("Cacheserver 1 stopped."); CacheHelper.StopJavaServer(2); Util.Log("Cacheserver 2 stopped."); CacheHelper.StopJavaServer(3); Util.Log("Cacheserver 3 stopped."); CacheHelper.StopJavaLocator(1); Util.Log("Locator 1 stopped."); CacheHelper.ClearEndpoints(); CacheHelper.ClearLocators(); } private void ClearRegionListenersStep1() { var region0 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[0]); region0.GetSubscriptionService().RegisterAllKeys(); var attrMutator = region0.AttributesMutator; var listener = new TallyListener<object, object>(); attrMutator.SetCacheListener(listener); var writer = new TallyWriter<object, object>(); attrMutator.SetCacheWriter(writer); } private void ClearRegionStep1() { var region0 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[0]); region0.GetSubscriptionService().RegisterAllKeys(); CreateEntry(m_regionNames[0], m_keys[0], m_nvals[0]); CreateEntry(m_regionNames[0], m_keys[1], m_nvals[1]); if (region0.Count != 2) { Assert.Fail("Expected region size 2"); } } private void ClearRegionListenersStep2() { var region0 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[0]); if (region0.Count != 2) { Assert.Fail("Expected region size 2"); } } private void ClearRegionStep2() { //Console.WriteLine("IRegion<object, object> Name = {0}", m_regionNames[0]); var region0 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[0]); if (region0 == null) { Console.WriteLine("Region0 is Null"); } else { //Console.WriteLine("NIL:Before clear call"); region0.Clear(); //Console.WriteLine("NIL:After clear call"); if (region0.Count != 0) { Assert.Fail("Expected region size 0"); } } Thread.Sleep(20000); } private void ClearRegionListenersStep3() { var region0 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[0]); if (region0.Count != 0) { Assert.Fail("Expected region size 0"); } var attr = region0.Attributes; var listener = attr.CacheListener as TallyListener<object, object>; var writer = attr.CacheWriter as TallyWriter<object, object>; if (listener.Clears != 1) { Assert.Fail("Expected listener clear count 1"); } if (writer.Clears != 1) { Assert.Fail("Expected writer clear count 1"); } CreateEntry(m_regionNames[0], m_keys[0], m_nvals[0]); CreateEntry(m_regionNames[0], m_keys[1], m_nvals[1]); if (region0.Count != 2) { Assert.Fail("Expected region size 2"); } region0.GetLocalView().Clear(); if (listener.Clears != 2) { Assert.Fail("Expected listener clear count 2"); } if (writer.Clears != 2) { Assert.Fail("Expected writer clear count 2"); } if (region0.Count != 0) { Assert.Fail("Expected region size 0"); } } private void ClearRegionStep3() { var region0 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[0]); if (region0.Count != 2) { Assert.Fail("Expected region size 2"); } if (!region0.ContainsKey(m_keys[0])) { Assert.Fail("m_key[0] is not on Server"); } if (!region0.ContainsKey(m_keys[1])) { Assert.Fail("m_key[1] is not on Server"); } } private void PutAllStep3() { var region0 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[0]); var resultKeys = new List<object>(); object key0 = m_keys[0]; object key1 = m_keys[1]; resultKeys.Add(key0); resultKeys.Add(key1); region0.GetSubscriptionService().RegisterKeys(resultKeys.ToArray()); Util.Log("Step three completes"); } private void PutAllStep4() { var map0 = new Dictionary<object, object>(); var map1 = new Dictionary<object, object>(); object key0 = m_keys[0]; object key1 = m_keys[1]; var val0 = m_vals[0]; var val1 = m_vals[1]; map0.Add(key0, val0); map0.Add(key1, val1); object key2 = m_keys[2]; object key3 = m_keys[3]; var val2 = m_vals[2]; var val3 = m_vals[3]; map1.Add(key2, val2); map1.Add(key3, val3); var region0 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[0]); var region1 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[1]); region0.PutAll(map0); region1.PutAll(map1); Util.Log("Put All Complets"); } private void PutAllStep5() { VerifyCreated(m_regionNames[0], m_keys[0]); VerifyCreated(m_regionNames[0], m_keys[1]); VerifyEntry(m_regionNames[0], m_keys[0], m_vals[0]); VerifyEntry(m_regionNames[0], m_keys[1], m_vals[1]); DoNetsearch(m_regionNames[1], m_keys[2], m_vals[2], true); DoNetsearch(m_regionNames[1], m_keys[3], m_vals[3], true); Util.Log("StepFive complete."); } private void PutAllStep6() { var map0 = new Dictionary<object, object>(); var map1 = new Dictionary<object, object>(); object key0 = m_keys[0]; object key1 = m_keys[1]; var val0 = m_nvals[0]; var val1 = m_nvals[1]; map0.Add(key0, val0); map0.Add(key1, val1); object key2 = m_keys[2]; object key3 = m_keys[3]; var val2 = m_nvals[2]; var val3 = m_nvals[3]; map1.Add(key2, val2); map1.Add(key3, val3); var region0 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[0]); var region1 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[1]); region0.PutAll(map0); region1.PutAll(map1); Util.Log("Step6 Complets"); } private void PutAllStep7() //client 1 { //Region0 is changed at client 1 because keys[0] and keys[1] were registered.PutAllStep3 VerifyEntry(m_regionNames[0], m_keys[0], m_nvals[0]); VerifyEntry(m_regionNames[0], m_keys[1], m_nvals[1]); // region1 is not changed at client beacuse no regsiter interest. VerifyEntry(m_regionNames[1], m_keys[2], m_vals[2]); VerifyEntry(m_regionNames[1], m_keys[3], m_vals[3]); Util.Log("PutAllStep7 complete."); } private void RunPutAll() { CacheHelper.SetupJavaServers(true, "cacheserver_notify_subscription.xml", "cacheserver_notify_subscription2.xml"); CacheHelper.StartJavaLocator(1, "GFELOC"); Util.Log("Locator 1 started."); CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1); Util.Log("Cacheserver 1 started."); CacheHelper.StartJavaServerWithLocators(2, "GFECS2", 1); Util.Log("Cacheserver 2 started."); _client1.Call(CreateTCRegions_Pool, RegionNames, CacheHelper.Locators, "__TESTPOOL1_", true); //Client Notification true for client 1 _client2.Call(CreateTCRegions_Pool, RegionNames, CacheHelper.Locators, "__TESTPOOL1_", true); //Cleint notification true for client 2 Util.Log("IRegion<object, object> creation complete."); _client1.Call(PutAllStep3); Util.Log("PutAllStep3 complete."); _client2.Call(PutAllStep4); Util.Log("PutAllStep4 complete."); _client1.Call(PutAllStep5); Util.Log("PutAllStep5 complete."); _client2.Call(PutAllStep6); Util.Log("PutAllStep6 complete."); _client1.Call(PutAllStep7); Util.Log("PutAllStep7 complete."); _client1.Call(Close); Util.Log("Client 1 closed"); _client2.Call(Close); Util.Log("Client 2 closed"); CacheHelper.StopJavaServer(1); Util.Log("Cacheserver 1 stopped."); CacheHelper.StopJavaServer(2); Util.Log("Cacheserver 2 stopped."); CacheHelper.StopJavaLocator(1); Util.Log("Locator 1 stopped."); CacheHelper.ClearEndpoints(); CacheHelper.ClearLocators(); } #region Tests [Test] public void PutEmptyByteArrayTest() { CacheHelper.SetupJavaServers("cacheserver.xml"); CacheHelper.StartJavaLocator(1, "GFELOC"); CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1); Util.Log("Cacheserver 1 started."); _client1.Call(CreateTCRegions_Pool, RegionNames3, CacheHelper.Locators, "__TESTPOOL1_", true); Util.Log("StepOne of region creation complete."); _client1.Call(EmptyByteArrayTest); Util.Log("EmptyByteArrayTest completed."); CacheHelper.StopJavaServer(1); Util.Log("Cacheserver 1 stopped."); CacheHelper.StopJavaLocator(1); } [Test] public void CheckKeyOnServer() { CacheHelper.SetupJavaServers("cacheserver.xml"); CacheHelper.StartJavaLocator(1, "GFELOC"); CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1); Util.Log("Cacheserver 1 started."); _client1.Call(CreateTCRegions_Pool, RegionNames, CacheHelper.Locators, "__TESTPOOL1_", true); Util.Log("StepOne of region creation complete."); _client1.Call(CheckAndPutKey); Util.Log("Check for ContainsKeyOnServer complete."); CacheHelper.StopJavaServer(1); Util.Log("Cacheserver 1 stopped."); CacheHelper.StopJavaLocator(1); } [Test] public void GetInterestsOnClient() { CacheHelper.SetupJavaServers("cacheserver_notify_subscription.xml"); CacheHelper.StartJavaLocator(1, "GFELOC"); CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1); Util.Log("Cacheserver 1 started."); _client1.Call(CreateTCRegions_Pool, RegionNames, CacheHelper.Locators, "__TESTPOOL1_", true); Util.Log("StepOne of region creation complete."); _client1.Call(GetInterests); Util.Log("StepTwo of check for GetInterestsOnClient complete."); CacheHelper.StopJavaServer(1); Util.Log("Cacheserver 1 stopped."); CacheHelper.StopJavaLocator(1); } [Test] public void DistOps() { RunDistOps(); } [Test] public void DistOps2() { RunDistOps2(); } [Test] public void Notification() { RunNotification(); } [Test] public void CheckPartitionResolver() { RunPartitionResolver(); } [Test] public void TradeKeyPartitionResolver() { RunTradeKeyResolver(); } [Test] public void RegionClearTest() { CacheHelper.SetupJavaServers("cacheserver_notify_subscription.xml"); CacheHelper.StartJavaLocator(1, "GFELOC"); CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1); Util.Log("Cacheserver 1 started."); _client1.Call(CreateTCRegions_Pool, RegionNames, CacheHelper.Locators, "__TESTPOOL1_", true); Util.Log("client 1 StepOne of region creation complete."); _client2.Call(CreateTCRegions_Pool, RegionNames, CacheHelper.Locators, "__TESTPOOL1_", true); Util.Log("client 2 StepOne of region creation complete."); _client1.Call(ClearRegionListenersStep1); _client2.Call(ClearRegionStep1); _client1.Call(ClearRegionListenersStep2); _client2.Call(ClearRegionStep2); _client1.Call(ClearRegionListenersStep3); _client2.Call(ClearRegionStep3); Util.Log("StepTwo of check for RegionClearTest complete."); CacheHelper.StopJavaServer(1); Util.Log("Cacheserver 1 stopped."); CacheHelper.StopJavaLocator(1); } [Test] public void PutAll() { RunPutAll(); } #endregion } }