From 2f523ae2a9be64bf53d1962fd9ddefe47617ff28 Mon Sep 17 00:00:00 2001 From: Tom Pantelis Date: Mon, 16 Nov 2015 02:47:21 -0500 Subject: [PATCH] Refactor MockConfiguration to extend ConfigurationImpl MockConfiguration is now essentially a wrapper for ModuleShardConfigProvider whose source is a shard name -> members map. This will make it easier when adding new methods to Configuration plus unit tests will now use the producton ConfigurationImpl as this class is simple enough where we don't really need the functionality mocked. Change-Id: I88e520b275a658a6d718442ad31c1f1e3603c70c Signed-off-by: Tom Pantelis --- .../datastore/utils/MockConfiguration.java | 124 ++++-------------- 1 file changed, 22 insertions(+), 102 deletions(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/MockConfiguration.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/MockConfiguration.java index 0d036d3699..7709735248 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/MockConfiguration.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/utils/MockConfiguration.java @@ -8,116 +8,36 @@ package org.opendaylight.controller.cluster.datastore.utils; -import com.google.common.collect.ImmutableMap; -import java.util.ArrayList; +import com.google.common.collect.Sets; import java.util.Arrays; -import java.util.Collection; import java.util.Collections; import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Map; -import java.util.Set; import org.opendaylight.controller.cluster.datastore.config.Configuration; -import org.opendaylight.controller.cluster.datastore.config.ModuleShardConfiguration; -import org.opendaylight.controller.cluster.datastore.shardstrategy.ShardStrategy; - -public class MockConfiguration implements Configuration{ - private Map> shardMembers = ImmutableMap.>builder(). - put("default", Arrays.asList("member-1", "member-2")). - /*put("astronauts", Arrays.asList("member-2", "member-3")).*/build(); +import org.opendaylight.controller.cluster.datastore.config.ConfigurationImpl; +import org.opendaylight.controller.cluster.datastore.config.ModuleConfig; +import org.opendaylight.controller.cluster.datastore.config.ModuleShardConfigProvider; +public class MockConfiguration extends ConfigurationImpl { public MockConfiguration() { - } - - public MockConfiguration(Map> shardMembers) { - this.shardMembers = shardMembers; - } - - @Override - public Collection getMemberShardNames(final String memberName) { - ArrayList shardNames = new ArrayList(); - for(Map.Entry> shard : shardMembers.entrySet()) { - if (shard.getValue().contains(memberName)) { - shardNames.add(shard.getKey()); - } - } - return shardNames; - } - - @Override - public String getModuleNameFromNameSpace(final String nameSpace) { - return null; - } - - @Override - public String getShardNameForModule(final String moduleName) { - return null; - } - - @Override - public Collection getMembersFromShardName(final String shardName) { - if("default".equals(shardName)) { - return Arrays.asList("member-1", "member-2"); - } else if("astronauts".equals(shardName)){ - return Arrays.asList("member-2", "member-3"); - } - - List members = shardMembers.get(shardName); - return members != null ? members : Collections.emptyList(); - } - - @Override public Set getAllShardNames() { - return Collections.emptySet(); - } - - @Override - public Collection getUniqueMemberNamesForAllShards() { - Set allNames = new HashSet<>(); - for(List l: shardMembers.values()) { - allNames.addAll(l); - } - - return allNames; - } - - @Override - public ShardStrategy getStrategyForModule(String moduleName) { - return null; - } - - @Override - public void addModuleShardConfiguration(ModuleShardConfiguration config) { - } - - @Override - public boolean isShardConfigured(String shardName) { - return (shardMembers.containsKey(shardName)); - } - - @Override - public void addMemberReplicaForShard (String shardName, String newMemberName) { - Map> newShardMembers = new HashMap<>(shardMembers); - for(Map.Entry> shard : newShardMembers.entrySet()) { - if (shard.getKey().equals(shardName)) { - List replicas = new ArrayList<>(shard.getValue()); - replicas.add(newMemberName); - shard.setValue(replicas); - shardMembers = ImmutableMap.>builder().putAll(newShardMembers).build(); - } - } - } - - @Override - public void removeMemberReplicaForShard (String shardName, String newMemberName) { - Map> newShardMembers = new HashMap<>(shardMembers); - for(Map.Entry> shard : newShardMembers.entrySet()) { - if (shard.getKey().equals(shardName)) { - List replicas = new ArrayList<>(shard.getValue()); - replicas.remove(newMemberName); - shard.setValue(replicas); - shardMembers = ImmutableMap.>builder().putAll(newShardMembers).build(); + this(Collections.singletonMap("default", Arrays.asList("member-1", "member-2"))); + } + + public MockConfiguration(final Map> shardMembers) { + super(new ModuleShardConfigProvider() { + @Override + public Map retrieveModuleConfigs(Configuration configuration) { + Map retMap = new HashMap(); + for(Map.Entry> e : shardMembers.entrySet()) { + String shardName = e.getKey(); + ModuleConfig mc = new ModuleConfig(shardName); + mc.addShardConfig(shardName, Sets.newHashSet(e.getValue())); + retMap.put(mc.getName(), mc); + } + + return retMap; } - } + }); } } -- 2.36.6