53c3a89589d663f108d59510145ac239607407c8
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / test / java / org / opendaylight / controller / cluster / datastore / ConfigurationImplTest.java
1 /*
2  * Copyright (c) 2014, 2015 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;
10
11 import static org.junit.Assert.assertEquals;
12 import static org.junit.Assert.assertFalse;
13 import static org.junit.Assert.assertTrue;
14 import com.google.common.collect.Sets;
15 import com.typesafe.config.ConfigFactory;
16 import java.io.File;
17 import java.util.List;
18 import java.util.Set;
19 import org.junit.Assert;
20 import org.junit.BeforeClass;
21 import org.junit.Test;
22
23 public class ConfigurationImplTest {
24
25     private static ConfigurationImpl configuration;
26
27     @BeforeClass
28     public static void staticSetup(){
29         configuration = new ConfigurationImpl("module-shards.conf", "modules.conf");
30     }
31
32     @Test
33     public void testConstructor(){
34         Assert.assertNotNull(configuration);
35     }
36
37     @Test
38     public void testGetMemberShardNames(){
39         List<String> memberShardNames =
40             configuration.getMemberShardNames("member-1");
41
42         assertTrue(memberShardNames.contains("people-1"));
43         assertTrue(memberShardNames.contains("cars-1"));
44
45         // Retrieve once again to hit cache
46
47         memberShardNames =
48             configuration.getMemberShardNames("member-1");
49
50         assertTrue(memberShardNames.contains("people-1"));
51         assertTrue(memberShardNames.contains("cars-1"));
52
53     }
54
55     @Test
56     public void testGetMembersFromShardName(){
57         List<String> members =
58             configuration.getMembersFromShardName("default");
59
60         assertEquals(3, members.size());
61
62         assertTrue(members.contains("member-1"));
63         assertTrue(members.contains("member-2"));
64         assertTrue(members.contains("member-3"));
65
66         assertFalse(members.contains("member-26"));
67
68         // Retrieve once again to hit cache
69         members =
70             configuration.getMembersFromShardName("default");
71
72         assertEquals(3, members.size());
73
74         assertTrue(members.contains("member-1"));
75         assertTrue(members.contains("member-2"));
76         assertTrue(members.contains("member-3"));
77
78         assertFalse(members.contains("member-26"));
79
80
81         // Try to find a shard which is not present
82
83         members =
84             configuration.getMembersFromShardName("foobar");
85
86         assertEquals(0, members.size());
87     }
88
89     @Test
90     public void testReadConfigurationFromFile(){
91         File f = new File("./module-shards.conf");
92         ConfigFactory.parseFile(f);
93     }
94
95     @Test
96     public void testGetAllShardNames(){
97         Set<String> allShardNames = configuration.getAllShardNames();
98
99         assertEquals(4, allShardNames.size());
100         assertTrue(allShardNames.contains("default"));
101         assertTrue(allShardNames.contains("people-1"));
102         assertTrue(allShardNames.contains("cars-1"));
103         assertTrue(allShardNames.contains("test-1"));
104     }
105
106     @Test
107     public void testGetUniqueMemberNamesForAllShards() {
108         assertEquals("getUniqueMemberNamesForAllShards", Sets.newHashSet("member-1", "member-2", "member-3"),
109                 configuration.getUniqueMemberNamesForAllShards());
110     }
111 }