Implement RemoveServer for leader
[controller.git] / opendaylight / md-sal / sal-akka-raft / src / test / java / org / opendaylight / controller / cluster / raft / RaftActorContextImplTest.java
index 26fdf8f25d34434477831f0fdc4489bf2794742a..f2903983e930490a37478fda36e2f64b2fa70a42 100644 (file)
@@ -18,6 +18,8 @@ import akka.actor.Props;
 import akka.testkit.TestActorRef;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Maps;
+import java.util.HashMap;
+import java.util.Map;
 import org.junit.After;
 import org.junit.Test;
 import org.opendaylight.controller.cluster.NonPersistentDataProvider;
@@ -45,24 +47,43 @@ public class RaftActorContextImplTest extends AbstractActorTest {
 
     @Test
     public void testGetPeerAddress() {
+        Map<String, String> peerMap = new HashMap<>();
+        peerMap.put("peer1", "peerAddress1");
+        peerMap.put("peer2", null);
         DefaultConfigParamsImpl configParams = new DefaultConfigParamsImpl();
         RaftActorContextImpl context = new RaftActorContextImpl(actor, actor.underlyingActor().getContext(),
                 "test", new ElectionTermImpl(new NonPersistentDataProvider(), "test", log), -1, -1,
-                Maps.newHashMap(ImmutableMap.<String, String>of("peer1", "peerAddress1")), configParams,
-                new NonPersistentDataProvider(), log);
+                peerMap, configParams, new NonPersistentDataProvider(), log);
 
         assertEquals("getPeerAddress", "peerAddress1", context.getPeerAddress("peer1"));
         assertEquals("getPeerAddress", null, context.getPeerAddress("peer2"));
 
         PeerAddressResolver mockResolver = mock(PeerAddressResolver.class);
         doReturn("peerAddress2").when(mockResolver).resolve("peer2");
+        doReturn("peerAddress3").when(mockResolver).resolve("peer3");
         configParams.setPeerAddressResolver(mockResolver);
 
         assertEquals("getPeerAddress", "peerAddress2", context.getPeerAddress("peer2"));
+        assertEquals("getPeerAddress", "peerAddress3", context.getPeerAddress("peer3"));
 
         reset(mockResolver);
-        assertEquals("getPeerAddress", "peerAddress2", context.getPeerAddress("peer2"));
         assertEquals("getPeerAddress", "peerAddress1", context.getPeerAddress("peer1"));
+        assertEquals("getPeerAddress", "peerAddress2", context.getPeerAddress("peer2"));
         verify(mockResolver, never()).resolve(anyString());
     }
+
+    @Test
+    public void testSetPeerAddress() {
+        DefaultConfigParamsImpl configParams = new DefaultConfigParamsImpl();
+        RaftActorContextImpl context = new RaftActorContextImpl(actor, actor.underlyingActor().getContext(),
+                "test", new ElectionTermImpl(new NonPersistentDataProvider(), "test", log), -1, -1,
+                Maps.newHashMap(ImmutableMap.<String, String>of("peer1", "peerAddress1")), configParams,
+                new NonPersistentDataProvider(), log);
+
+        context.setPeerAddress("peer1", "peerAddress1_1");
+        assertEquals("getPeerAddress", "peerAddress1_1", context.getPeerAddress("peer1"));
+
+        context.setPeerAddress("peer2", "peerAddress2");
+        assertEquals("getPeerAddress", null, context.getPeerAddress("peer2"));
+    }
 }