package org.infinispan.configuration; import org.infinispan.configuration.cache.CacheMode; import org.infinispan.configuration.cache.Configuration; import org.infinispan.configuration.cache.ConfigurationBuilder; import org.infinispan.distribution.ch.impl.SyncConsistentHashFactory; import org.infinispan.test.AbstractInfinispanTest; import org.testng.Assert; import org.testng.annotations.Test; @Test(groups = "functional", testName = "configuration.HashConfigurationBuilderTest") public class HashConfigurationBuilderTest extends AbstractInfinispanTest { public void testNumOwners() { ConfigurationBuilder cb = new ConfigurationBuilder(); cb.clustering().cacheMode(CacheMode.DIST_SYNC); cb.clustering().hash().numOwners(5); Configuration c = cb.build(); Assert.assertEquals(5, c.clustering().hash().numOwners()); try { cb.clustering().hash().numOwners(0); Assert.fail("IllegalArgumentException expected"); } catch (IllegalArgumentException e) { } } public void testNumSegments() { ConfigurationBuilder cb = new ConfigurationBuilder(); cb.clustering().cacheMode(CacheMode.DIST_SYNC); cb.clustering().hash().numSegments(5); Configuration c = cb.build(); Assert.assertEquals(5, c.clustering().hash().numSegments()); try { cb.clustering().hash().numSegments(0); Assert.fail("IllegalArgumentException expected"); } catch (IllegalArgumentException e) { } } public void testConsistentHashFactory() { ConfigurationBuilder cb = new ConfigurationBuilder(); cb.clustering().cacheMode(CacheMode.DIST_SYNC); Configuration c = cb.build(); Assert.assertNull(c.clustering().hash().consistentHashFactory()); SyncConsistentHashFactory consistentHashFactory = new SyncConsistentHashFactory(); cb.clustering().hash().consistentHashFactory(consistentHashFactory); c = cb.build(); Assert.assertSame(c.clustering().hash().consistentHashFactory(), consistentHashFactory); } }