X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-akka-raft%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fraft%2Fbehaviors%2FAbstractLeaderTest.java;h=69c48b978f73aa451a7aec5ee07696a7cfc8a172;hb=HEAD;hp=dd3ed2347c911bdf429193c147bfed11011dbe54;hpb=a8efbf6623ba1f9ffbb0278672f32e9cfe73a014;p=controller.git diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractLeaderTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractLeaderTest.java index dd3ed2347c..69c48b978f 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractLeaderTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractLeaderTest.java @@ -9,8 +9,8 @@ package org.opendaylight.controller.cluster.raft.behaviors; import static org.junit.Assert.assertTrue; + import akka.actor.ActorRef; -import akka.testkit.JavaTestKit; import akka.testkit.TestActorRef; import com.google.common.util.concurrent.Uninterruptibles; import java.util.HashMap; @@ -25,62 +25,57 @@ import org.opendaylight.controller.cluster.raft.utils.ForwardMessageToBehaviorAc import org.opendaylight.controller.cluster.raft.utils.MessageCollectorActor; import scala.concurrent.duration.FiniteDuration; -public abstract class AbstractLeaderTest extends AbstractRaftActorBehaviorTest{ +public abstract class AbstractLeaderTest extends AbstractRaftActorBehaviorTest { /** * When we removed scheduling of heartbeat in the AbstractLeader constructor we ended up with a situation where * if no follower responded to an initial AppendEntries heartbeats would not be sent to it. This test verifies * that regardless of whether followers respond or not we schedule heartbeats. - * - * @throws Exception */ @Test - public void testLeaderSchedulesHeartbeatsEvenWhenNoFollowersRespondToInitialAppendEntries() throws Exception { + public void testLeaderSchedulesHeartbeatsEvenWhenNoFollowersRespondToInitialAppendEntries() { logStart("testLeaderSchedulesHeartbeatsEvenWhenNoFollowersRespondToInitialAppendEntries"); - new JavaTestKit(getSystem()) {{ - String leaderActorId = actorFactory.generateActorId("leader"); - String follower1ActorId = actorFactory.generateActorId("follower"); - String follower2ActorId = actorFactory.generateActorId("follower"); - TestActorRef leaderActor = - actorFactory.createTestActor(ForwardMessageToBehaviorActor.props(), leaderActorId); - ActorRef follower1Actor = actorFactory.createActor(MessageCollectorActor.props(), follower1ActorId); - ActorRef follower2Actor = actorFactory.createActor(MessageCollectorActor.props(), follower2ActorId); + String leaderActorId = actorFactory.generateActorId("leader"); + String follower1ActorId = actorFactory.generateActorId("follower"); + String follower2ActorId = actorFactory.generateActorId("follower"); - MockRaftActorContext leaderActorContext = - new MockRaftActorContext(leaderActorId, getSystem(), leaderActor); + TestActorRef leaderActor = + actorFactory.createTestActor(ForwardMessageToBehaviorActor.props(), leaderActorId); + final ActorRef follower1Actor = actorFactory.createActor(MessageCollectorActor.props(), follower1ActorId); + final ActorRef follower2Actor = actorFactory.createActor(MessageCollectorActor.props(), follower2ActorId); - DefaultConfigParamsImpl configParams = new DefaultConfigParamsImpl(); - configParams.setHeartBeatInterval(new FiniteDuration(200, TimeUnit.MILLISECONDS)); - configParams.setIsolatedLeaderCheckInterval(new FiniteDuration(10, TimeUnit.SECONDS)); + MockRaftActorContext leaderActorContext = + new MockRaftActorContext(leaderActorId, getSystem(), leaderActor); - leaderActorContext.setConfigParams(configParams); + DefaultConfigParamsImpl configParams = new DefaultConfigParamsImpl(); + configParams.setHeartBeatInterval(new FiniteDuration(200, TimeUnit.MILLISECONDS)); + configParams.setIsolatedLeaderCheckInterval(new FiniteDuration(10, TimeUnit.SECONDS)); - leaderActorContext.setReplicatedLog( - new MockRaftActorContext.MockReplicatedLogBuilder().createEntries(1,5,1).build()); + leaderActorContext.setConfigParams(configParams); - Map peerAddresses = new HashMap<>(); - peerAddresses.put(follower1ActorId, - follower1Actor.path().toString()); - peerAddresses.put(follower2ActorId, - follower2Actor.path().toString()); + leaderActorContext.setReplicatedLog( + new MockRaftActorContext.MockReplicatedLogBuilder().createEntries(1,5,1).build()); + Map peerAddresses = new HashMap<>(); + peerAddresses.put(follower1ActorId, + follower1Actor.path().toString()); + peerAddresses.put(follower2ActorId, + follower2Actor.path().toString()); - leaderActorContext.setPeerAddresses(peerAddresses); - RaftActorBehavior leader = createBehavior(leaderActorContext); + leaderActorContext.setPeerAddresses(peerAddresses); - leaderActor.underlyingActor().setBehavior(leader); + RaftActorBehavior leader = createBehavior(leaderActorContext); - Uninterruptibles.sleepUninterruptibly(1, TimeUnit.SECONDS); + leaderActor.underlyingActor().setBehavior(leader); - List allMessages = MessageCollectorActor.getAllMatching(leaderActor, SendHeartBeat.class); + Uninterruptibles.sleepUninterruptibly(1, TimeUnit.SECONDS); - // Need more than 1 heartbeat to be delivered because we waited for 1 second with heartbeat interval 200ms - assertTrue(String.format("%s messages is less than expected", allMessages.size()), - allMessages.size() > 1); + List allMessages = MessageCollectorActor.getAllMatching(leaderActor, SendHeartBeat.class); - }}; + // Need more than 1 heartbeat to be delivered because we waited for 1 second with heartbeat interval 200ms + assertTrue(String.format("%s messages is less than expected", allMessages.size()), + allMessages.size() > 1); } - }