package org.infinispan.eviction.impl;
import org.infinispan.Cache;
import org.infinispan.distribution.DistributionManager;
import org.infinispan.remoting.transport.Address;
import org.testng.annotations.Test;
/**
* Tests manual eviction with concurrent read and/or write operation. This test has passivation disabled and the
* eviction happens in the backup owner
*
* @author Pedro Ruivo
* @since 6.0
*/
@Test(groups = "functional", testName = "eviction.ManualEvictionWithSizeBasedAndConcurrentOperationsInBackupOwnerTest", singleThreaded = true)
public class ManualEvictionWithSizeBasedAndConcurrentOperationsInBackupOwnerTest
extends ManualEvictionWithSizeBasedAndConcurrentOperationsInPrimaryOwnerTest {
@Override
protected Object createSameHashCodeKey(String name) {
final Cache otherCache = otherCacheManager.getCache();
final Address address = otherCache.getAdvancedCache().getRpcManager().getAddress();
DistributionManager distributionManager = otherCache.getAdvancedCache().getDistributionManager();
int hashCode = 0;
SameHashCodeKey key = new SameHashCodeKey(name, hashCode);
while (!distributionManager.getPrimaryLocation(key).equals(address)) {
hashCode++;
key = new SameHashCodeKey(name, hashCode);
}
return key;
}
}