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.raft;
10 import static org.junit.Assert.assertEquals;
11 import static org.mockito.Matchers.anyString;
12 import static org.mockito.Mockito.doReturn;
13 import static org.mockito.Mockito.mock;
14 import static org.mockito.Mockito.never;
15 import static org.mockito.Mockito.reset;
16 import static org.mockito.Mockito.verify;
17 import akka.actor.Props;
18 import akka.testkit.TestActorRef;
19 import com.google.common.collect.ImmutableMap;
20 import com.google.common.collect.Maps;
21 import org.junit.After;
22 import org.junit.Test;
23 import org.opendaylight.controller.cluster.NonPersistentDataProvider;
24 import org.opendaylight.controller.cluster.raft.utils.DoNothingActor;
25 import org.slf4j.Logger;
26 import org.slf4j.LoggerFactory;
29 * Unit tests for RaftActorContextImpl.
31 * @author Thomas Pantelis
33 public class RaftActorContextImplTest extends AbstractActorTest {
34 private final TestActorFactory actorFactory = new TestActorFactory(getSystem());
36 private final TestActorRef<DoNothingActor> actor = actorFactory.createTestActor(
37 Props.create(DoNothingActor.class), actorFactory.generateActorId("actor"));
39 private final Logger log = LoggerFactory.getLogger(RaftActorContextImplTest.class);
42 public void tearDown() {
47 public void testGetPeerAddress() {
48 DefaultConfigParamsImpl configParams = new DefaultConfigParamsImpl();
49 RaftActorContextImpl context = new RaftActorContextImpl(actor, actor.underlyingActor().getContext(),
50 "test", new ElectionTermImpl(new NonPersistentDataProvider(), "test", log), -1, -1,
51 Maps.newHashMap(ImmutableMap.<String, String>of("peer1", "peerAddress1")), configParams,
52 new NonPersistentDataProvider(), log);
54 assertEquals("getPeerAddress", "peerAddress1", context.getPeerAddress("peer1"));
55 assertEquals("getPeerAddress", null, context.getPeerAddress("peer2"));
57 PeerAddressResolver mockResolver = mock(PeerAddressResolver.class);
58 doReturn("peerAddress2").when(mockResolver).resolve("peer2");
59 configParams.setPeerAddressResolver(mockResolver);
61 assertEquals("getPeerAddress", "peerAddress2", context.getPeerAddress("peer2"));
64 assertEquals("getPeerAddress", "peerAddress2", context.getPeerAddress("peer2"));
65 assertEquals("getPeerAddress", "peerAddress1", context.getPeerAddress("peer1"));
66 verify(mockResolver, never()).resolve(anyString());
70 public void testSetPeerAddress() {
71 DefaultConfigParamsImpl configParams = new DefaultConfigParamsImpl();
72 RaftActorContextImpl context = new RaftActorContextImpl(actor, actor.underlyingActor().getContext(),
73 "test", new ElectionTermImpl(new NonPersistentDataProvider(), "test", log), -1, -1,
74 Maps.newHashMap(ImmutableMap.<String, String>of("peer1", "peerAddress1")), configParams,
75 new NonPersistentDataProvider(), log);
77 context.setPeerAddress("peer1", "peerAddress1_1");
78 assertEquals("getPeerAddress", "peerAddress1_1", context.getPeerAddress("peer1"));
80 context.setPeerAddress("peer2", "peerAddress2");
81 assertEquals("getPeerAddress", null, context.getPeerAddress("peer2"));