X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fconfig%2FConfigurationImplTest.java;fp=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fconfig%2FConfigurationImplTest.java;h=bcfbeb4b584c84ba266c0d84c7dc729c1b0a5ccb;hb=5273c33b6f2051a7e3b1afcc4eeae4e457b6f26c;hp=443f017734cc9478ce3f6b1cf458756a00ff8939;hpb=a785966182ba80592f99be5a27a9af1d4c2ac37f;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/config/ConfigurationImplTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/config/ConfigurationImplTest.java index 443f017734..bcfbeb4b58 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/config/ConfigurationImplTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/config/ConfigurationImplTest.java @@ -9,16 +9,18 @@ package org.opendaylight.controller.cluster.datastore.config; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import com.google.common.collect.ImmutableSortedSet; import com.google.common.collect.Sets; -import com.typesafe.config.ConfigFactory; -import java.io.File; -import java.util.List; +import java.net.URI; +import java.util.Collection; import java.util.Set; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; +import org.opendaylight.controller.cluster.datastore.shardstrategy.ModuleShardStrategy; +import org.opendaylight.controller.cluster.datastore.shardstrategy.ShardStrategy; public class ConfigurationImplTest { @@ -36,71 +38,112 @@ public class ConfigurationImplTest { @Test public void testGetMemberShardNames(){ - List memberShardNames = - configuration.getMemberShardNames("member-1"); + Collection memberShardNames = configuration.getMemberShardNames("member-1"); + assertEquals("getMemberShardNames", ImmutableSortedSet.of("people-1", "cars-1", "test-1", "default"), + ImmutableSortedSet.copyOf(memberShardNames)); - assertTrue(memberShardNames.contains("people-1")); - assertTrue(memberShardNames.contains("cars-1")); - - // Retrieve once again to hit cache - - memberShardNames = - configuration.getMemberShardNames("member-1"); - - assertTrue(memberShardNames.contains("people-1")); - assertTrue(memberShardNames.contains("cars-1")); + memberShardNames = configuration.getMemberShardNames("member-2"); + assertEquals("getMemberShardNames", ImmutableSortedSet.of("default"), + ImmutableSortedSet.copyOf(memberShardNames)); + memberShardNames = configuration.getMemberShardNames("member-100"); + assertEquals("getMemberShardNames size", 0, memberShardNames.size()); } @Test public void testGetMembersFromShardName(){ - List members = - configuration.getMembersFromShardName("default"); + Collection members = configuration.getMembersFromShardName("default"); + assertEquals("getMembersFromShardName", ImmutableSortedSet.of("member-1", "member-2", "member-3"), + ImmutableSortedSet.copyOf(members)); - assertEquals(3, members.size()); + members = configuration.getMembersFromShardName("cars-1"); + assertEquals("getMembersFromShardName", ImmutableSortedSet.of("member-1"), + ImmutableSortedSet.copyOf(members)); - assertTrue(members.contains("member-1")); - assertTrue(members.contains("member-2")); - assertTrue(members.contains("member-3")); + // Try to find a shard which is not present - assertFalse(members.contains("member-26")); + members = configuration.getMembersFromShardName("foobar"); + assertEquals("getMembersFromShardName size", 0, members.size()); + } - // Retrieve once again to hit cache - members = - configuration.getMembersFromShardName("default"); + @Test + public void testGetAllShardNames(){ + Set allShardNames = configuration.getAllShardNames(); + assertEquals("getAllShardNames", ImmutableSortedSet.of("people-1", "cars-1", "test-1", "default"), + ImmutableSortedSet.copyOf(allShardNames)); + } - assertEquals(3, members.size()); + @Test + public void testGetModuleNameFromNameSpace() { + String moduleName = configuration.getModuleNameFromNameSpace( + "urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test:cars"); + assertEquals("getModuleNameFromNameSpace", "cars", moduleName); - assertTrue(members.contains("member-1")); - assertTrue(members.contains("member-2")); - assertTrue(members.contains("member-3")); + moduleName = configuration.getModuleNameFromNameSpace( + "urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test"); + assertEquals("getModuleNameFromNameSpace", "test", moduleName); - assertFalse(members.contains("member-26")); + moduleName = configuration.getModuleNameFromNameSpace("non-existent"); + assertNull("getModuleNameFromNameSpace - expected null", moduleName); + } + @Test + public void testGetStrategyForModule() { + ShardStrategy strategy = configuration.getStrategyForModule("cars"); + assertNotNull("getStrategyForModule null", strategy); + assertEquals("getStrategyForModule type", ModuleShardStrategy.class, strategy.getClass()); - // Try to find a shard which is not present + strategy = configuration.getStrategyForModule("people"); + assertNotNull("getStrategyForModule null", strategy); + assertEquals("getStrategyForModule type", ModuleShardStrategy.class, strategy.getClass()); - members = - configuration.getMembersFromShardName("foobar"); + strategy = configuration.getStrategyForModule("default"); + assertNull("getStrategyForModule - expected null", strategy); - assertEquals(0, members.size()); + strategy = configuration.getStrategyForModule("non-existent"); + assertNull("getStrategyForModule - expected null", strategy); } @Test - public void testReadConfigurationFromFile(){ - File f = new File("./module-shards.conf"); - ConfigFactory.parseFile(f); + public void testGetShardNameForModule() { + String shardName = configuration.getShardNameForModule("cars"); + assertEquals("getShardNameForModule", "cars-1", shardName); + + shardName = configuration.getShardNameForModule("people"); + assertEquals("getShardNameForModule", "people-1", shardName); + + shardName = configuration.getShardNameForModule("non-existent"); + assertNull("getShardNameForModule - expected null", shardName); } @Test - public void testGetAllShardNames(){ - Set allShardNames = configuration.getAllShardNames(); - - assertEquals(4, allShardNames.size()); - assertTrue(allShardNames.contains("default")); - assertTrue(allShardNames.contains("people-1")); - assertTrue(allShardNames.contains("cars-1")); - assertTrue(allShardNames.contains("test-1")); + public void testAddModuleShardConfiguration() throws Exception { + URI namespace = new URI("urn:opendaylight:test:oven"); + String moduleName = "oven"; + String shardName = "oven-shard"; + String shardStrategyName = ModuleShardStrategy.NAME; + Collection shardMemberNames = ImmutableSortedSet.of("member-1", "member-4", "member-5"); + + configuration.addModuleShardConfiguration(new ModuleShardConfiguration(namespace, moduleName, shardName, + shardStrategyName, shardMemberNames)); + + assertEquals("getMemberShardNames", ImmutableSortedSet.of("people-1", "cars-1", "test-1", "default", shardName), + ImmutableSortedSet.copyOf(configuration.getMemberShardNames("member-1"))); + assertEquals("getMemberShardNames", ImmutableSortedSet.of(shardName), + ImmutableSortedSet.copyOf(configuration.getMemberShardNames("member-4"))); + assertEquals("getMemberShardNames", ImmutableSortedSet.of(shardName), + ImmutableSortedSet.copyOf(configuration.getMemberShardNames("member-5"))); + assertEquals("getMembersFromShardName", shardMemberNames, + ImmutableSortedSet.copyOf(configuration.getMembersFromShardName(shardName))); + assertEquals("getShardNameForModule", shardName, configuration.getShardNameForModule(moduleName)); + assertEquals("getModuleNameFromNameSpace", moduleName, + configuration.getModuleNameFromNameSpace(namespace.toASCIIString())); + assertEquals("getAllShardNames", ImmutableSortedSet.of("people-1", "cars-1", "test-1", "default", shardName), + ImmutableSortedSet.copyOf(configuration.getAllShardNames())); + + ShardStrategy strategy = configuration.getStrategyForModule("cars"); + assertNotNull("getStrategyForModule null", strategy); + assertEquals("getStrategyForModule type", ModuleShardStrategy.class, strategy.getClass()); } @Test