Make REUSABLE_*_TL final
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / test / java / org / opendaylight / controller / cluster / datastore / ShardPeerAddressResolverTest.java
1 /*
2  * Copyright (c) 2015 Brocade Communications 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 package org.opendaylight.controller.cluster.datastore;
9
10 import static org.junit.Assert.assertEquals;
11 import akka.actor.Address;
12 import com.google.common.collect.Sets;
13 import java.util.Collection;
14 import org.junit.Test;
15 import org.opendaylight.controller.cluster.datastore.identifiers.ShardIdentifier;
16
17 /**
18  * Unit tests for ShardPeerAddressResolver.
19  *
20  * @author Thomas Pantelis
21  */
22 public class ShardPeerAddressResolverTest {
23
24     @Test
25     public void testGetShardActorAddress() {
26         ShardPeerAddressResolver resolver = new ShardPeerAddressResolver("config", "member-1");
27
28         assertEquals("getShardActorAddress", null, resolver.getShardActorAddress("default", "member-2"));
29
30         Address address2 = new Address("tcp", "system2");
31         resolver.addPeerAddress("member-2", address2);
32         assertEquals("getPeerAddress", address2, resolver.getPeerAddress("member-2"));
33
34         Address address3 = new Address("tcp", "system3");
35         resolver.addPeerAddress("member-3", address3);
36         assertEquals("getPeerAddress", address3, resolver.getPeerAddress("member-3"));
37
38         assertEquals("getShardActorAddress", address2.toString() +
39                 "/user/shardmanager-config/member-2-shard-default-config",
40                 resolver.getShardActorAddress("default", "member-2"));
41
42         assertEquals("getShardActorAddress", address3.toString() +
43                 "/user/shardmanager-config/member-3-shard-default-config",
44                 resolver.getShardActorAddress("default", "member-3"));
45
46         assertEquals("getShardActorAddress", address2.toString() +
47                 "/user/shardmanager-config/member-2-shard-topology-config",
48                 resolver.getShardActorAddress("topology", "member-2"));
49
50         resolver.removePeerAddress("member-2");
51         assertEquals("getShardActorAddress", null, resolver.getShardActorAddress("default", "member-2"));
52         assertEquals("getShardActorAddress", null, resolver.getShardActorAddress("topology", "member-2"));
53         assertEquals("getShardActorAddress", address3.toString() +
54                 "/user/shardmanager-config/member-3-shard-default-config",
55                 resolver.getShardActorAddress("default", "member-3"));
56     }
57
58     @Test
59     public void testResolve() {
60         String type = "config";
61         ShardPeerAddressResolver resolver = new ShardPeerAddressResolver(type, "member-1");
62
63         String memberName = "member-2";
64         String peerId = ShardIdentifier.builder().memberName(memberName ).shardName("default").
65                 type(type).build().toString();
66
67         assertEquals("resolve", null, resolver.resolve(peerId));
68
69         Address address = new Address("tcp", "system");
70         resolver.addPeerAddress(memberName, address);
71
72         String shardAddress = resolver.getShardActorAddress("default", memberName);
73         assertEquals("getShardActorAddress", address.toString() +
74                 "/user/shardmanager-" + type + "/" + memberName + "-shard-default-" + type, shardAddress);
75
76         assertEquals("resolve", shardAddress, resolver.resolve(peerId));
77     }
78
79     @Test
80     public void testGetShardManagerPeerActorAddresses() {
81         ShardPeerAddressResolver resolver = new ShardPeerAddressResolver("config", "member-1");
82
83         resolver.addPeerAddress("member-1", new Address("tcp", "system1"));
84
85         Address address2 = new Address("tcp", "system2");
86         resolver.addPeerAddress("member-2", address2);
87
88         Address address3 = new Address("tcp", "system3");
89         resolver.addPeerAddress("member-3", address3);
90
91         Collection<String> peerAddresses = resolver.getShardManagerPeerActorAddresses();
92         assertEquals("getShardManagerPeerActorAddresses", Sets.newHashSet(
93                 address2.toString() + "/user/shardmanager-config",
94                 address3.toString() + "/user/shardmanager-config"), Sets.newHashSet(peerAddresses));
95     }
96 }