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%2FAbstractRaftActorBehaviorTest.java;h=7695d05133e6cd18e4d97a35282d9931995a2f01;hb=HEAD;hp=ead6bb7bbdffdf09763ccfd7a67cb5aff1bc22fd;hpb=e1eca73a5ae2ffae8dd78c6fe5281cd2f45d5ef3;p=controller.git diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractRaftActorBehaviorTest.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractRaftActorBehaviorTest.java index ead6bb7bbd..3497840b38 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractRaftActorBehaviorTest.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/behaviors/AbstractRaftActorBehaviorTest.java @@ -13,13 +13,12 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import akka.actor.ActorRef; -import akka.actor.Props; -import akka.testkit.TestActorRef; -import com.google.protobuf.ByteString; +import akka.protobuf.ByteString; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Map; import org.junit.After; @@ -33,11 +32,14 @@ import org.opendaylight.controller.cluster.raft.ReplicatedLogEntry; import org.opendaylight.controller.cluster.raft.TestActorFactory; import org.opendaylight.controller.cluster.raft.messages.AppendEntries; import org.opendaylight.controller.cluster.raft.messages.AppendEntriesReply; +import org.opendaylight.controller.cluster.raft.messages.Payload; import org.opendaylight.controller.cluster.raft.messages.RaftRPC; import org.opendaylight.controller.cluster.raft.messages.RequestVote; import org.opendaylight.controller.cluster.raft.messages.RequestVoteReply; +import org.opendaylight.controller.cluster.raft.persisted.SimpleReplicatedLogEntry; import org.opendaylight.controller.cluster.raft.policy.RaftPolicy; -import org.opendaylight.controller.cluster.raft.protobuff.client.messages.Payload; +import org.opendaylight.controller.cluster.raft.utils.InMemoryJournal; +import org.opendaylight.controller.cluster.raft.utils.InMemorySnapshotStore; import org.opendaylight.controller.cluster.raft.utils.MessageCollectorActor; import org.slf4j.LoggerFactory; @@ -45,18 +47,21 @@ public abstract class AbstractRaftActorBehaviorTest protected final TestActorFactory actorFactory = new TestActorFactory(getSystem()); - private final TestActorRef behaviorActor = actorFactory.createTestActor( - Props.create(MessageCollectorActor.class), actorFactory.generateActorId("behavior")); + private final ActorRef behaviorActor = actorFactory.createActor( + MessageCollectorActor.props(), actorFactory.generateActorId("behavior")); RaftActorBehavior behavior; @After - public void tearDown() throws Exception { + public void tearDown() { if (behavior != null) { behavior.close(); } actorFactory.close(); + + InMemoryJournal.clear(); + InMemorySnapshotStore.clear(); } /** @@ -64,7 +69,7 @@ public abstract class AbstractRaftActorBehaviorTest * term the RaftActor gets into the Follower state. */ @Test - public void testHandleRaftRPCWithNewerTerm() throws Exception { + public void testHandleRaftRPCWithNewerTerm() { MockRaftActorContext actorContext = createActorContext(); assertStateChangesToFollowerWhenRaftRPCHasNewerTerm(actorContext, behaviorActor, @@ -87,7 +92,7 @@ public abstract class AbstractRaftActorBehaviorTest * change it's state and it responds back with a failure. */ @Test - public void testHandleAppendEntriesSenderTermLessThanReceiverTerm() throws Exception { + public void testHandleAppendEntriesSenderTermLessThanReceiverTerm() { MockRaftActorContext context = createActorContext(); short payloadVersion = 5; context.setPayloadVersion(payloadVersion); @@ -95,7 +100,8 @@ public abstract class AbstractRaftActorBehaviorTest // First set the receivers term to a high number (1000) context.getTermInformation().update(1000, "test"); - AppendEntries appendEntries = new AppendEntries(100, "leader-1", 0, 0, null, 101, -1, (short)4); + AppendEntries appendEntries = new AppendEntries(100, "leader-1", 0, 0, Collections.emptyList(), 101, -1, + (short)4); behavior = createBehavior(context); @@ -116,7 +122,7 @@ public abstract class AbstractRaftActorBehaviorTest @Test - public void testHandleAppendEntriesAddSameEntryToLog() throws Exception { + public void testHandleAppendEntriesAddSameEntryToLog() { MockRaftActorContext context = createActorContext(); context.getTermInformation().update(2, "test"); @@ -126,7 +132,7 @@ public abstract class AbstractRaftActorBehaviorTest setLastLogEntry(context, 2, 0, payload); List entries = new ArrayList<>(); - entries.add(new MockRaftActorContext.MockReplicatedLogEntry(2, 0, payload)); + entries.add(new SimpleReplicatedLogEntry(0, 2, payload)); final AppendEntries appendEntries = new AppendEntries(2, "leader-1", -1, -1, entries, 2, -1, (short)0); @@ -148,8 +154,7 @@ public abstract class AbstractRaftActorBehaviorTest handleAppendEntriesAddSameEntryToLogReply(behaviorActor); } - protected void handleAppendEntriesAddSameEntryToLogReply(TestActorRef replyActor) - throws Exception { + protected void handleAppendEntriesAddSameEntryToLogReply(final ActorRef replyActor) { AppendEntriesReply reply = MessageCollectorActor.getFirstMatching(replyActor, AppendEntriesReply.class); Assert.assertNull("Expected no AppendEntriesReply", reply); } @@ -271,8 +276,8 @@ public abstract class AbstractRaftActorBehaviorTest } - protected void assertStateChangesToFollowerWhenRaftRPCHasNewerTerm(MockRaftActorContext actorContext, - ActorRef actorRef, RaftRPC rpc) throws Exception { + protected void assertStateChangesToFollowerWhenRaftRPCHasNewerTerm(final MockRaftActorContext actorContext, + final ActorRef actorRef, final RaftRPC rpc) { Payload payload = new MockRaftActorContext.MockPayload(""); setLastLogEntry(actorContext, 1, 0, payload); @@ -289,13 +294,12 @@ public abstract class AbstractRaftActorBehaviorTest } protected MockRaftActorContext.SimpleReplicatedLog setLastLogEntry( - MockRaftActorContext actorContext, long term, long index, Payload data) { - return setLastLogEntry(actorContext, - new MockRaftActorContext.MockReplicatedLogEntry(term, index, data)); + final MockRaftActorContext actorContext, final long term, final long index, final Payload data) { + return setLastLogEntry(actorContext, new SimpleReplicatedLogEntry(index, term, data)); } - protected MockRaftActorContext.SimpleReplicatedLog setLastLogEntry(MockRaftActorContext actorContext, - ReplicatedLogEntry logEntry) { + protected MockRaftActorContext.SimpleReplicatedLog setLastLogEntry(final MockRaftActorContext actorContext, + final ReplicatedLogEntry logEntry) { MockRaftActorContext.SimpleReplicatedLog log = new MockRaftActorContext.SimpleReplicatedLog(); log.append(logEntry); actorContext.setReplicatedLog(log); @@ -305,7 +309,7 @@ public abstract class AbstractRaftActorBehaviorTest protected abstract T createBehavior(RaftActorContext actorContext); - protected final T createBehavior(MockRaftActorContext actorContext) { + protected final T createBehavior(final MockRaftActorContext actorContext) { T ret = createBehavior((RaftActorContext)actorContext); actorContext.setCurrentBehavior(ret); return ret; @@ -319,12 +323,12 @@ public abstract class AbstractRaftActorBehaviorTest return new MockRaftActorContext(); } - protected MockRaftActorContext createActorContext(ActorRef actor) { + protected MockRaftActorContext createActorContext(final ActorRef actor) { return new MockRaftActorContext("test", getSystem(), actor); } protected AppendEntries createAppendEntriesWithNewerTerm() { - return new AppendEntries(100, "leader-1", 0, 0, null, 1, -1, (short)0); + return new AppendEntries(100, "leader-1", 0, 0, Collections.emptyList(), 1, -1, (short)0); } protected AppendEntriesReply createAppendEntriesReplyWithNewerTerm() { @@ -339,7 +343,7 @@ public abstract class AbstractRaftActorBehaviorTest return new RequestVoteReply(100, false); } - protected ByteString toByteString(Map state) { + protected ByteString toByteString(final Map state) { ByteArrayOutputStream bos = new ByteArrayOutputStream(); try (ObjectOutputStream oos = new ObjectOutputStream(bos)) { oos.writeObject(state); @@ -349,8 +353,8 @@ public abstract class AbstractRaftActorBehaviorTest } } - protected void logStart(String name) { - LoggerFactory.getLogger(LeaderTest.class).info("Starting " + name); + protected void logStart(final String name) { + LoggerFactory.getLogger(getClass()).info("Starting " + name); } protected RaftPolicy createRaftPolicy(final boolean automaticElectionsEnabled,