2 * Copyright (c) 2014 Cisco 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
9 package org.opendaylight.controller.cluster.datastore.utils;
11 import akka.actor.ActorRef;
12 import akka.actor.Address;
13 import akka.actor.AddressFromURIString;
14 import akka.cluster.ClusterEvent;
15 import akka.cluster.MemberStatus;
16 import akka.cluster.UniqueAddress;
17 import java.util.HashSet;
19 import org.opendaylight.controller.cluster.access.concepts.MemberName;
20 import org.opendaylight.controller.cluster.datastore.ClusterWrapper;
21 import scala.collection.JavaConversions;
23 public class MockClusterWrapper implements ClusterWrapper{
25 private Address selfAddress = new Address("akka.tcp", "test", "127.0.0.1", 2550);
26 private final MemberName currentMemberName;
28 public MockClusterWrapper() {
32 public MockClusterWrapper(String currentMemberName) {
33 this.currentMemberName = MemberName.forName(currentMemberName);
37 public void subscribeToMemberEvents(ActorRef actorRef) {
41 public MemberName getCurrentMemberName() {
42 return currentMemberName;
46 public Address getSelfAddress() {
50 public void setSelfAddress(Address selfAddress) {
51 this.selfAddress = selfAddress;
54 public static void sendMemberUp(ActorRef to, String memberName, String address){
55 to.tell(createMemberUp(memberName, address), null);
58 public static void sendMemberRemoved(ActorRef to, String memberName, String address){
59 to.tell(createMemberRemoved(memberName, address), null);
62 public static ClusterEvent.MemberRemoved createMemberRemoved(String memberName, String address) {
63 akka.cluster.UniqueAddress uniqueAddress = new UniqueAddress(
64 AddressFromURIString.parse(address), 55);
66 Set<String> roles = new HashSet<>();
68 roles.add(memberName);
70 akka.cluster.Member member = new akka.cluster.Member(uniqueAddress, 1, MemberStatus
72 JavaConversions.asScalaSet(roles).<String>toSet());
74 return new ClusterEvent.MemberRemoved(member, MemberStatus.up());
79 public static ClusterEvent.MemberUp createMemberUp(String memberName, String address) {
80 akka.cluster.UniqueAddress uniqueAddress = new UniqueAddress(
81 AddressFromURIString.parse(address), 55);
83 Set<String> roles = new HashSet<>();
85 roles.add(memberName);
87 akka.cluster.Member member = new akka.cluster.Member(uniqueAddress, 1, MemberStatus.up(),
88 JavaConversions.asScalaSet(roles).<String>toSet());
90 return new ClusterEvent.MemberUp(member);
93 public static ClusterEvent.UnreachableMember createUnreachableMember(String memberName, String address) {
94 akka.cluster.UniqueAddress uniqueAddress = new UniqueAddress(
95 AddressFromURIString.parse(address), 55);
97 Set<String> roles = new HashSet<>();
99 roles.add(memberName);
101 akka.cluster.Member member = new akka.cluster.Member(uniqueAddress, 1, MemberStatus.up(),
102 JavaConversions.asScalaSet(roles).<String>toSet());
104 return new ClusterEvent.UnreachableMember(member);
107 public static ClusterEvent.ReachableMember createReachableMember(String memberName, String address) {
108 akka.cluster.UniqueAddress uniqueAddress = new UniqueAddress(
109 AddressFromURIString.parse(address), 55);
111 Set<String> roles = new HashSet<>();
113 roles.add(memberName);
115 akka.cluster.Member member = new akka.cluster.Member(uniqueAddress, 1, MemberStatus.up(),
116 JavaConversions.asScalaSet(roles).<String>toSet());
118 return new ClusterEvent.ReachableMember(member);