blob: 6aa55f0cef768c80f18282cf18e18a238776573c [file] [log] [blame]
/*
* 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.IO;
using System.Threading;
namespace Apache.Geode.Client.UnitTests
{
using NUnit.Framework;
using DUnitFramework;
using Client;
[TestFixture]
[Category("group4")]
[Category("unicast_only")]
[Category("generics")]
public class RegionRemoveTests : ThinClientRegionSteps
{
#region Private members
private UnitProcess _mClient1, _mClient2;
#endregion
protected override ClientBase[] GetClients()
{
_mClient1 = new UnitProcess();
_mClient2 = new UnitProcess();
return new ClientBase[] { _mClient1, _mClient2 };
}
[TestFixtureTearDown]
public override void EndTests()
{
CacheHelper.StopJavaServers();
base.EndTests();
}
[TearDown]
public override void EndTest()
{
try
{
_mClient1.Call(DestroyRegions);
_mClient2.Call(DestroyRegions);
CacheHelper.ClearEndpoints();
CacheHelper.ClearLocators();
}
finally
{
CacheHelper.StopJavaServers();
CacheHelper.StopJavaLocators();
}
base.EndTest();
}
protected virtual void RemoveAllStep1()
{
CreateEntry(m_regionNames[0], m_keys[0], m_vals[0]);
CreateEntry(m_regionNames[0], m_keys[1], m_vals[1]);
CreateEntry(m_regionNames[0], m_keys[2], m_vals[2]);
CreateEntry(m_regionNames[1], m_keys[3], m_vals[3]);
CreateEntry(m_regionNames[1], m_keys[4], m_vals[4]);
CreateEntry(m_regionNames[1], m_keys[5], m_vals[5]);
Util.Log("RemoveAllStep1 complete.");
}
protected virtual void RemoveAllStep2()
{
IRegion<object, object> reg0 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[0]);
IRegion<object, object> reg1 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[1]);
ICollection<object> keys0 = new List<object>();
ICollection<object> keys1 = new List<object>();
for (int i = 0; i < 3; i++)
{
keys0.Add(m_keys[i]);
keys1.Add(m_keys[i + 3]);
}
//try remove all
reg0.RemoveAll(keys0);
reg1.RemoveAll(keys1);
Util.Log("RemoveAllStep2 complete.");
}
protected virtual void RemoveAllStep3()
{
VerifyDestroyed(m_regionNames[0], m_keys[0]);
VerifyDestroyed(m_regionNames[0], m_keys[1]);
VerifyDestroyed(m_regionNames[0], m_keys[2]);
VerifyDestroyed(m_regionNames[1], m_keys[3]);
VerifyDestroyed(m_regionNames[1], m_keys[4]);
VerifyDestroyed(m_regionNames[1], m_keys[5]);
IRegion<object, object> region0 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[0]);
IRegion<object, object> region1 = CacheHelper.GetVerifyRegion<object, object>(m_regionNames[1]);
Assert.AreEqual(region0.Count, 0, "Remove all should remove the entries specified");
Assert.AreEqual(region1.Count, 0, "Remove all should remove the entries specified");
Util.Log("RemoveAllStep3 complete.");
}
private void RunRemoveAll()
{
CacheHelper.SetupJavaServers(true, "cacheserver.xml");
CacheHelper.StartJavaLocator(1, "GFELOC");
Util.Log("Locator 1 started.");
CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1);
Util.Log("Cacheserver 1 started.");
_mClient1.Call(CreateTCRegions_Pool, RegionNames,
CacheHelper.Locators, "__TESTPOOL1_", false);
Util.Log("StepOne (pool locators) complete.");
_mClient2.Call(CreateTCRegions_Pool, RegionNames,
CacheHelper.Locators, "__TESTPOOL1_", false);
Util.Log("StepTwo (pool locators) complete.");
_mClient1.Call(RemoveAllStep1);
Util.Log("RemoveAllStep1 complete.");
_mClient1.Call(RemoveAllStep2);
Util.Log("RemoveAllStep2 complete.");
_mClient2.Call(RemoveAllStep3);
Util.Log("RemoveAllStep3 complete.");
_mClient1.Call(Close);
Util.Log("Client 1 closed");
_mClient2.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 RunRemoveOps1()
{
CacheHelper.SetupJavaServers(true, "cacheserver1_expiry.xml");
CacheHelper.StartJavaLocator(1, "GFELOC");
Util.Log("Locator 1 started.");
CacheHelper.StartJavaServerWithLocators(1, "GFECS1", 1);
Util.Log("Cacheserver 1 started.");
_mClient1.Call(CreateTCRegions_Pool, RegionNames2,
CacheHelper.Locators, "__TESTPOOL1_", false);
Util.Log("StepOne (pool locators) complete.");
_mClient2.Call(CreateTCRegions_Pool, RegionNames2,
CacheHelper.Locators, "__TESTPOOL1_", false);
Util.Log("StepTwo (pool locators) complete.");
_mClient2.Call(RemoveStepEight);
Util.Log("RemoveStepEight complete.");
_mClient1.Call(Close);
Util.Log("Client 1 closed");
_mClient2.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();
}
#region Tests
[Test]
public void RemoveAll()
{
RunRemoveAll();
}
[Test]
public void RemoveOps1()
{
RunRemoveOps1();
}
#endregion
}
}