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;
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.access.concepts.MemberName;
16 import org.opendaylight.controller.cluster.datastore.identifiers.ShardIdentifier;
19 * Unit tests for ShardPeerAddressResolver.
21 * @author Thomas Pantelis
23 public class ShardPeerAddressResolverTest {
24 private static final MemberName MEMBER_1 = MemberName.forName("member-1");
25 private static final MemberName MEMBER_2 = MemberName.forName("member-2");
26 private static final MemberName MEMBER_3 = MemberName.forName("member-3");
29 public void testGetShardActorAddress() {
30 ShardPeerAddressResolver resolver = new ShardPeerAddressResolver("config", MEMBER_1);
32 assertEquals("getShardActorAddress", null, resolver.getShardActorAddress("default", MEMBER_2));
34 Address address2 = new Address("tcp", "system2");
35 resolver.addPeerAddress(MEMBER_2, address2);
36 assertEquals("getPeerAddress", address2, resolver.getPeerAddress(MEMBER_2));
38 Address address3 = new Address("tcp", "system3");
39 resolver.addPeerAddress(MEMBER_3, address3);
40 assertEquals("getPeerAddress", address3, resolver.getPeerAddress(MEMBER_3));
42 assertEquals("getShardActorAddress", address2.toString() +
43 "/user/shardmanager-config/member-2-shard-default-config",
44 resolver.getShardActorAddress("default", MEMBER_2));
46 assertEquals("getShardActorAddress", address3.toString() +
47 "/user/shardmanager-config/member-3-shard-default-config",
48 resolver.getShardActorAddress("default", MEMBER_3));
50 assertEquals("getShardActorAddress", address2.toString() +
51 "/user/shardmanager-config/member-2-shard-topology-config",
52 resolver.getShardActorAddress("topology", MEMBER_2));
54 resolver.removePeerAddress(MEMBER_2);
55 assertEquals("getShardActorAddress", null, resolver.getShardActorAddress("default", MEMBER_2));
56 assertEquals("getShardActorAddress", null, resolver.getShardActorAddress("topology", MEMBER_2));
57 assertEquals("getShardActorAddress", address3.toString() +
58 "/user/shardmanager-config/member-3-shard-default-config",
59 resolver.getShardActorAddress("default", MEMBER_3));
63 public void testResolve() {
64 String type = "config";
65 ShardPeerAddressResolver resolver = new ShardPeerAddressResolver(type, MEMBER_1);
67 MemberName memberName = MEMBER_2;
68 String peerId = ShardIdentifier.create("default", memberName, type).toString();
70 assertEquals("resolve", null, resolver.resolve(peerId));
72 Address address = new Address("tcp", "system");
73 resolver.addPeerAddress(memberName, address);
75 String shardAddress = resolver.getShardActorAddress("default", memberName);
76 assertEquals("getShardActorAddress", address.toString() +
77 "/user/shardmanager-" + type + "/" + memberName.getName() + "-shard-default-" + type, shardAddress);
79 assertEquals("resolve", shardAddress, resolver.resolve(peerId));
83 public void testGetShardManagerPeerActorAddresses() {
84 ShardPeerAddressResolver resolver = new ShardPeerAddressResolver("config", MEMBER_1);
86 resolver.addPeerAddress(MEMBER_1, new Address("tcp", "system1"));
88 Address address2 = new Address("tcp", "system2");
89 resolver.addPeerAddress(MEMBER_2, address2);
91 Address address3 = new Address("tcp", "system3");
92 resolver.addPeerAddress(MEMBER_3, address3);
94 Collection<String> peerAddresses = resolver.getShardManagerPeerActorAddresses();
95 assertEquals("getShardManagerPeerActorAddresses", Sets.newHashSet(
96 address2.toString() + "/user/shardmanager-config",
97 address3.toString() + "/user/shardmanager-config"), Sets.newHashSet(peerAddresses));