Refactor MockConfiguration to extend ConfigurationImpl
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / test / java / org / opendaylight / controller / cluster / datastore / utils / MockConfiguration.java
1 /*
2  * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.controller.cluster.datastore.utils;
10
11 import com.google.common.collect.Sets;
12 import java.util.Arrays;
13 import java.util.Collections;
14 import java.util.HashMap;
15 import java.util.List;
16 import java.util.Map;
17 import org.opendaylight.controller.cluster.datastore.config.Configuration;
18 import org.opendaylight.controller.cluster.datastore.config.ConfigurationImpl;
19 import org.opendaylight.controller.cluster.datastore.config.ModuleConfig;
20 import org.opendaylight.controller.cluster.datastore.config.ModuleShardConfigProvider;
21
22 public class MockConfiguration extends ConfigurationImpl {
23     public MockConfiguration() {
24         this(Collections.singletonMap("default", Arrays.asList("member-1", "member-2")));
25     }
26
27     public MockConfiguration(final Map<String, List<String>> shardMembers) {
28         super(new ModuleShardConfigProvider() {
29             @Override
30             public Map<String, ModuleConfig> retrieveModuleConfigs(Configuration configuration) {
31                 Map<String, ModuleConfig> retMap = new HashMap<String, ModuleConfig>();
32                 for(Map.Entry<String, List<String>> e : shardMembers.entrySet()) {
33                     String shardName = e.getKey();
34                     ModuleConfig mc = new ModuleConfig(shardName);
35                     mc.addShardConfig(shardName, Sets.newHashSet(e.getValue()));
36                     retMap.put(mc.getName(), mc);
37                 }
38
39                 return retMap;
40             }
41         });
42     }
43 }