Use Akka artery for remote transport
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / test / java / org / opendaylight / controller / cluster / datastore / utils / MockClusterWrapper.java
index 810b270cfcee82aab53ca55f96a777e87bdc3141..9822559d5d14b810b9317813efff96a2e9004a82 100644 (file)
@@ -16,19 +16,21 @@ import akka.cluster.MemberStatus;
 import akka.cluster.UniqueAddress;
 import java.util.HashSet;
 import java.util.Set;
+import org.opendaylight.controller.cluster.access.concepts.MemberName;
 import org.opendaylight.controller.cluster.datastore.ClusterWrapper;
 import scala.collection.JavaConversions;
 
-public class MockClusterWrapper implements ClusterWrapper{
+public class MockClusterWrapper implements ClusterWrapper {
 
-    private Address selfAddress = new Address("akka.tcp", "test", "127.0.0.1", 2550);
-    private String currentMemberName = "member-1";
+    private Address selfAddress = new Address("akka", "test", "127.0.0.1", 2550);
+    private final MemberName currentMemberName;
 
     public MockClusterWrapper() {
+        this("member-1");
     }
 
     public MockClusterWrapper(String currentMemberName) {
-        this.currentMemberName = currentMemberName;
+        this.currentMemberName = MemberName.forName(currentMemberName);
     }
 
     @Override
@@ -36,7 +38,7 @@ public class MockClusterWrapper implements ClusterWrapper{
     }
 
     @Override
-    public String getCurrentMemberName() {
+    public MemberName getCurrentMemberName() {
         return currentMemberName;
     }
 
@@ -49,15 +51,15 @@ public class MockClusterWrapper implements ClusterWrapper{
         this.selfAddress = selfAddress;
     }
 
-    public static void sendMemberUp(ActorRef to, String memberName, String address){
+    public static void sendMemberUp(ActorRef to, String memberName, String address) {
         to.tell(createMemberUp(memberName, address), null);
     }
 
-    public static void sendMemberRemoved(ActorRef to, String memberName, String address){
+    public static void sendMemberRemoved(ActorRef to, String memberName, String address) {
         to.tell(createMemberRemoved(memberName, address), null);
     }
 
-    private static ClusterEvent.MemberRemoved createMemberRemoved(String memberName, String address) {
+    public static ClusterEvent.MemberRemoved createMemberRemoved(String memberName, String address) {
         akka.cluster.UniqueAddress uniqueAddress = new UniqueAddress(
             AddressFromURIString.parse(address), 55);
 
@@ -74,7 +76,7 @@ public class MockClusterWrapper implements ClusterWrapper{
     }
 
 
-    private static ClusterEvent.MemberUp createMemberUp(String memberName, String address) {
+    public static ClusterEvent.MemberUp createMemberUp(String memberName, String address) {
         akka.cluster.UniqueAddress uniqueAddress = new UniqueAddress(
             AddressFromURIString.parse(address), 55);
 
@@ -87,4 +89,32 @@ public class MockClusterWrapper implements ClusterWrapper{
 
         return new ClusterEvent.MemberUp(member);
     }
+
+    public static ClusterEvent.UnreachableMember createUnreachableMember(String memberName, String address) {
+        akka.cluster.UniqueAddress uniqueAddress = new UniqueAddress(
+            AddressFromURIString.parse(address), 55);
+
+        Set<String> roles = new HashSet<>();
+
+        roles.add(memberName);
+
+        akka.cluster.Member member = new akka.cluster.Member(uniqueAddress, 1, MemberStatus.up(),
+            JavaConversions.asScalaSet(roles).<String>toSet());
+
+        return new ClusterEvent.UnreachableMember(member);
+    }
+
+    public static ClusterEvent.ReachableMember createReachableMember(String memberName, String address) {
+        akka.cluster.UniqueAddress uniqueAddress = new UniqueAddress(
+            AddressFromURIString.parse(address), 55);
+
+        Set<String> roles = new HashSet<>();
+
+        roles.add(memberName);
+
+        akka.cluster.Member member = new akka.cluster.Member(uniqueAddress, 1, MemberStatus.up(),
+            JavaConversions.asScalaSet(roles).<String>toSet());
+
+        return new ClusterEvent.ReachableMember(member);
+    }
 }