import org.opendaylight.controller.cluster.raft.MockRaftActorContext;
import org.opendaylight.controller.cluster.raft.RaftActorContext;
import org.opendaylight.controller.cluster.raft.RaftState;
-import org.opendaylight.controller.cluster.raft.internal.messages.ApplyState;
-import org.opendaylight.controller.cluster.raft.internal.messages.Replicate;
-import org.opendaylight.controller.cluster.raft.internal.messages.SendHeartBeat;
+import org.opendaylight.controller.cluster.raft.ReplicatedLogImplEntry;
+import org.opendaylight.controller.cluster.raft.base.messages.ApplyState;
+import org.opendaylight.controller.cluster.raft.base.messages.Replicate;
+import org.opendaylight.controller.cluster.raft.base.messages.SendHeartBeat;
import org.opendaylight.controller.cluster.raft.messages.AppendEntries;
import org.opendaylight.controller.cluster.raft.utils.DoNothingActor;
leader.handleMessage(senderActor, new SendHeartBeat());
final String out =
- new ExpectMsg<String>(duration("1 seconds"),
- "match hint") {
+ new ExpectMsg<String>(duration("1 seconds"), "match hint") {
// do not put code outside this method, will run afterwards
protected String match(Object in) {
- if (in instanceof AppendEntries) {
- if (((AppendEntries) in).getTerm()
- == 0) {
+ Object msg = fromSerializableMessage(in);
+ if (msg instanceof AppendEntries) {
+ if (((AppendEntries)msg).getTerm() == 0) {
return "match";
}
return null;
.handleMessage(senderActor, new Replicate(null, null,
new MockRaftActorContext.MockReplicatedLogEntry(1,
100,
- "foo")
+ new MockRaftActorContext.MockPayload("foo"))
));
// State should not change
assertEquals(RaftState.Leader, raftState);
final String out =
- new ExpectMsg<String>(duration("1 seconds"),
- "match hint") {
+ new ExpectMsg<String>(duration("1 seconds"), "match hint") {
// do not put code outside this method, will run afterwards
protected String match(Object in) {
- if (in instanceof AppendEntries) {
- if (((AppendEntries) in).getTerm()
- == 0) {
+ Object msg = fromSerializableMessage(in);
+ if (msg instanceof AppendEntries) {
+ if (((AppendEntries)msg).getTerm() == 0) {
return "match";
}
return null;
MockRaftActorContext actorContext =
new MockRaftActorContext("test", getSystem(), raftActor);
+ actorContext.getReplicatedLog().removeFrom(0);
+
+ actorContext.getReplicatedLog().append(new ReplicatedLogImplEntry(0, 1,
+ new MockRaftActorContext.MockPayload("foo")));
+
+ ReplicatedLogImplEntry entry =
+ new ReplicatedLogImplEntry(1, 1,
+ new MockRaftActorContext.MockPayload("foo"));
+
+ actorContext.getReplicatedLog().append(entry);
+
Leader leader = new Leader(actorContext);
RaftState raftState = leader
- .handleMessage(senderActor, new Replicate(null, "state-id",
- new MockRaftActorContext.MockReplicatedLogEntry(1,
- 100,
- "foo")
- ));
+ .handleMessage(senderActor, new Replicate(null, "state-id",entry));
// State should not change
assertEquals(RaftState.Leader, raftState);
- assertEquals(100, actorContext.getCommitIndex());
+ assertEquals(1, actorContext.getCommitIndex());
final String out =
new ExpectMsg<String>(duration("1 seconds"),