2 * Copyright (c) 2015 Brocade Communications Systems, Inc. and others. All rights reserved.
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
8 package org.opendaylight.controller.cluster.datastore.shardmanager;
10 import static org.junit.Assert.assertEquals;
12 import akka.actor.Address;
13 import com.google.common.collect.Sets;
14 import java.util.Collection;
15 import org.junit.Test;
16 import org.opendaylight.controller.cluster.access.concepts.MemberName;
17 import org.opendaylight.controller.cluster.datastore.identifiers.ShardIdentifier;
20 * Unit tests for ShardPeerAddressResolver.
22 * @author Thomas Pantelis
24 public class ShardPeerAddressResolverTest {
25 private static final MemberName MEMBER_1 = MemberName.forName("member-1");
26 private static final MemberName MEMBER_2 = MemberName.forName("member-2");
27 private static final MemberName MEMBER_3 = MemberName.forName("member-3");
30 public void testGetShardActorAddress() {
31 ShardPeerAddressResolver resolver = new ShardPeerAddressResolver("config", MEMBER_1);
33 assertEquals("getShardActorAddress", null, resolver.getShardActorAddress("default", MEMBER_2));
35 Address address2 = new Address("tcp", "system2");
36 resolver.addPeerAddress(MEMBER_2, address2);
37 assertEquals("getPeerAddress", address2, resolver.getPeerAddress(MEMBER_2));
39 Address address3 = new Address("tcp", "system3");
40 resolver.addPeerAddress(MEMBER_3, address3);
41 assertEquals("getPeerAddress", address3, resolver.getPeerAddress(MEMBER_3));
43 assertEquals("getShardActorAddress",
44 address2.toString() + "/user/shardmanager-config/member-2-shard-default-config",
45 resolver.getShardActorAddress("default", MEMBER_2));
47 assertEquals("getShardActorAddress",
48 address3.toString() + "/user/shardmanager-config/member-3-shard-default-config",
49 resolver.getShardActorAddress("default", MEMBER_3));
51 assertEquals("getShardActorAddress",
52 address2.toString() + "/user/shardmanager-config/member-2-shard-topology-config",
53 resolver.getShardActorAddress("topology", MEMBER_2));
55 resolver.removePeerAddress(MEMBER_2);
56 assertEquals("getShardActorAddress", null, resolver.getShardActorAddress("default", MEMBER_2));
57 assertEquals("getShardActorAddress", null, resolver.getShardActorAddress("topology", MEMBER_2));
58 assertEquals("getShardActorAddress",
59 address3.toString() + "/user/shardmanager-config/member-3-shard-default-config",
60 resolver.getShardActorAddress("default", MEMBER_3));
64 public void testResolve() {
65 String type = "config";
66 ShardPeerAddressResolver resolver = new ShardPeerAddressResolver(type, MEMBER_1);
68 MemberName memberName = MEMBER_2;
69 String peerId = ShardIdentifier.create("default", memberName, type).toString();
71 assertEquals("resolve", null, resolver.resolve(peerId));
73 Address address = new Address("tcp", "system");
74 resolver.addPeerAddress(memberName, address);
76 String shardAddress = resolver.getShardActorAddress("default", memberName);
77 assertEquals("getShardActorAddress", address.toString() + "/user/shardmanager-" + type + "/"
78 + memberName.getName() + "-shard-default-" + type, shardAddress);
80 assertEquals("resolve", shardAddress, resolver.resolve(peerId));
84 public void testGetShardManagerPeerActorAddresses() {
85 ShardPeerAddressResolver resolver = new ShardPeerAddressResolver("config", MEMBER_1);
87 resolver.addPeerAddress(MEMBER_1, new Address("tcp", "system1"));
89 Address address2 = new Address("tcp", "system2");
90 resolver.addPeerAddress(MEMBER_2, address2);
92 Address address3 = new Address("tcp", "system3");
93 resolver.addPeerAddress(MEMBER_3, address3);
95 Collection<String> peerAddresses = resolver.getShardManagerPeerActorAddresses();
96 assertEquals("getShardManagerPeerActorAddresses", Sets.newHashSet(
97 address2.toString() + "/user/shardmanager-config",
98 address3.toString() + "/user/shardmanager-config"), Sets.newHashSet(peerAddresses));