X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-akka-raft%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fraft%2FRaftActorLeadershipTransferCohortTest.java;h=c48f87a7ccc1e565c97274920e7c247d78a29d59;hp=c7d9e3dfb8737b795eaf1b29d23499291806d225;hb=dcc9827eab4f95b8e35820e8355066ff105d2720;hpb=135129e0cca66040fd512fab740d59b2ab1f8382 diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorLeadershipTransferCohortTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorLeadershipTransferCohortTest.java index c7d9e3dfb8..c48f87a7cc 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorLeadershipTransferCohortTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/RaftActorLeadershipTransferCohortTest.java @@ -11,11 +11,14 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.timeout; import static org.mockito.Mockito.verify; + import akka.dispatch.Dispatchers; -import com.google.common.base.Function; +import java.util.function.Function; import org.junit.After; import org.junit.Test; import org.opendaylight.controller.cluster.raft.RaftActorLeadershipTransferCohort.OnComplete; +import org.opendaylight.controller.cluster.raft.behaviors.Leader; +import org.opendaylight.controller.cluster.raft.policy.DisableElectionsRaftPolicy; /** * Unit tests for RaftActorLeadershipTransferCohort. @@ -35,67 +38,70 @@ public class RaftActorLeadershipTransferCohortTest extends AbstractActorTest { factory.close(); } - private void setup() { - String persistenceId = factory.generateActorId("leader-"); - mockRaftActor = factory.createTestActor(MockRaftActor.builder().id(persistenceId).config( - config).pauseLeaderFunction(pauseLeaderFunction).props().withDispatcher(Dispatchers.DefaultDispatcherId()), + private void setup(final String testName) { + String persistenceId = factory.generateActorId(testName + "-leader-"); + config.setCustomRaftPolicyImplementationClass(DisableElectionsRaftPolicy.class.getName()); + mockRaftActor = factory.createTestActor(MockRaftActor.builder().id(persistenceId).config(config) + .pauseLeaderFunction(pauseLeaderFunction).props().withDispatcher(Dispatchers.DefaultDispatcherId()), persistenceId).underlyingActor(); - cohort = new RaftActorLeadershipTransferCohort(mockRaftActor, null); + cohort = new RaftActorLeadershipTransferCohort(mockRaftActor); cohort.addOnComplete(onComplete); mockRaftActor.waitForInitializeBehaviorComplete(); } @Test public void testOnNewLeader() { - setup(); + setup("testOnNewLeader"); cohort.setNewLeaderTimeoutInMillis(20000); cohort.onNewLeader("new-leader"); - verify(onComplete, never()).onSuccess(mockRaftActor.self(), null); + verify(onComplete, never()).onSuccess(mockRaftActor.self()); cohort.transferComplete(); cohort.onNewLeader(null); - verify(onComplete, never()).onSuccess(mockRaftActor.self(), null); + verify(onComplete, never()).onSuccess(mockRaftActor.self()); cohort.onNewLeader("new-leader"); - verify(onComplete).onSuccess(mockRaftActor.self(), null); + verify(onComplete).onSuccess(mockRaftActor.self()); } @Test public void testNewLeaderTimeout() { - setup(); + setup("testNewLeaderTimeout"); cohort.setNewLeaderTimeoutInMillis(200); cohort.transferComplete(); - verify(onComplete, timeout(3000)).onSuccess(mockRaftActor.self(), null); + verify(onComplete, timeout(3000)).onSuccess(mockRaftActor.self()); } @Test - public void testNotLeaderOnRun() { - config.setElectionTimeoutFactor(10000); - setup(); + public void testNotLeaderOnDoTransfer() { + setup("testNotLeaderOnDoTransfer"); cohort.doTransfer(); - verify(onComplete).onSuccess(mockRaftActor.self(), null); + verify(onComplete).onSuccess(mockRaftActor.self()); } @Test public void testAbortTransfer() { - setup(); + setup("testAbortTransfer"); cohort.abortTransfer(); - verify(onComplete).onFailure(mockRaftActor.self(), null); + verify(onComplete).onFailure(mockRaftActor.self()); } @Test public void testPauseLeaderTimeout() { - pauseLeaderFunction = new Function() { + pauseLeaderFunction = input -> null; + setup("testPauseLeaderTimeout"); + + Leader leader = new Leader(mockRaftActor.getRaftActorContext()) { @Override - public Void apply(Runnable input) { - return null; + public void transferLeadership(final RaftActorLeadershipTransferCohort leadershipTransferCohort) { + leadershipTransferCohort.transferComplete(); } }; + mockRaftActor.setCurrentBehavior(leader); - setup(); cohort.init(); - verify(onComplete, timeout(2000)).onFailure(mockRaftActor.self(), null); + verify(onComplete, timeout(2000)).onSuccess(mockRaftActor.self()); } }