package org.infinispan.client.hotrod;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
import java.net.SocketAddress;
import java.util.Map;
import java.util.Set;
import org.infinispan.configuration.cache.CacheMode;
import org.testng.annotations.Test;
/**
* @author gustavonalle
* @since 8.0
*/
@Test(groups = "functional", testName = "client.hotrod.SegmentOwnershipDistTest")
public class SegmentOwnershipDistTest extends BaseSegmentOwnershipTest {
public void testObtainSegmentOwnership() throws Exception {
RemoteCache<Object, Object> remoteCache = client(0).getCache();
Map<SocketAddress, Set<Integer>> segmentsByServer = remoteCache.getCacheTopologyInfo().getSegmentsPerServer();
Map<Integer, Set<SocketAddress>> serversBySegment = invertMap(segmentsByServer);
assertEquals(segmentsByServer.keySet().size(), NUM_SERVERS);
assertTrue(serversBySegment.entrySet().stream().allMatch(e -> e.getValue().size() == NUM_OWNERS));
}
@Override
protected CacheMode getCacheMode() {
return CacheMode.DIST_SYNC;
}
}