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;
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;
18 * Unit tests for ShardPeerAddressResolver.
20 * @author Thomas Pantelis
22 public class ShardPeerAddressResolverTest {
25 public void testGetShardActorAddress() {
26 ShardPeerAddressResolver resolver = new ShardPeerAddressResolver("config", "member-1");
28 assertEquals("getShardActorAddress", null, resolver.getShardActorAddress("default", "member-2"));
30 Address address2 = new Address("tcp", "system2");
31 resolver.addPeerAddress("member-2", address2);
32 assertEquals("getPeerAddress", address2, resolver.getPeerAddress("member-2"));
34 Address address3 = new Address("tcp", "system3");
35 resolver.addPeerAddress("member-3", address3);
36 assertEquals("getPeerAddress", address3, resolver.getPeerAddress("member-3"));
38 assertEquals("getShardActorAddress", address2.toString() +
39 "/user/shardmanager-config/member-2-shard-default-config",
40 resolver.getShardActorAddress("default", "member-2"));
42 assertEquals("getShardActorAddress", address3.toString() +
43 "/user/shardmanager-config/member-3-shard-default-config",
44 resolver.getShardActorAddress("default", "member-3"));
46 assertEquals("getShardActorAddress", address2.toString() +
47 "/user/shardmanager-config/member-2-shard-topology-config",
48 resolver.getShardActorAddress("topology", "member-2"));
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"));
59 public void testResolve() {
60 String type = "config";
61 ShardPeerAddressResolver resolver = new ShardPeerAddressResolver(type, "member-1");
63 String memberName = "member-2";
64 String peerId = ShardIdentifier.builder().memberName(memberName ).shardName("default").
65 type(type).build().toString();
67 assertEquals("resolve", null, resolver.resolve(peerId));
69 Address address = new Address("tcp", "system");
70 resolver.addPeerAddress(memberName, address);
72 String shardAddress = resolver.getShardActorAddress("default", memberName);
73 assertEquals("getShardActorAddress", address.toString() +
74 "/user/shardmanager-" + type + "/" + memberName + "-shard-default-" + type, shardAddress);
76 assertEquals("resolve", shardAddress, resolver.resolve(peerId));
80 public void testGetShardManagerPeerActorAddresses() {
81 ShardPeerAddressResolver resolver = new ShardPeerAddressResolver("config", "member-1");
83 resolver.addPeerAddress("member-1", new Address("tcp", "system1"));
85 Address address2 = new Address("tcp", "system2");
86 resolver.addPeerAddress("member-2", address2);
88 Address address3 = new Address("tcp", "system3");
89 resolver.addPeerAddress("member-3", address3);
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));