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%2FMockRaftActorContext.java;h=24581d6d2ae35aa6c1aca6f2efede8132dbc73ba;hp=562ca213a950123d876668fca5c47da4ea031995;hb=b5e3b3f436f8534ddb6c7f326ccbef995b96ddc3;hpb=64d19dc3c6578981ad4b4d73e2c8619e087a4799 diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/MockRaftActorContext.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/MockRaftActorContext.java index 562ca213a9..24581d6d2a 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/MockRaftActorContext.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/MockRaftActorContext.java @@ -12,17 +12,16 @@ import akka.actor.ActorRef; import akka.actor.ActorSelection; import akka.actor.ActorSystem; import akka.actor.Props; -import akka.event.Logging; -import akka.event.LoggingAdapter; import com.google.common.base.Preconditions; import com.google.protobuf.GeneratedMessage; -import org.opendaylight.controller.cluster.raft.protobuff.client.messages.Payload; -import org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages; -import org.opendaylight.controller.protobuff.messages.cluster.raft.test.MockPayloadMessages; - import java.io.Serializable; import java.util.HashMap; import java.util.Map; +import org.opendaylight.controller.cluster.raft.protobuff.client.messages.Payload; +import org.opendaylight.controller.protobuff.messages.cluster.raft.AppendEntriesMessages; +import org.opendaylight.controller.protobuff.messages.cluster.raft.test.MockPayloadMessages; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class MockRaftActorContext implements RaftActorContext { @@ -35,6 +34,7 @@ public class MockRaftActorContext implements RaftActorContext { private ReplicatedLog replicatedLog; private Map peerAddresses = new HashMap<>(); private ConfigParams configParams; + private boolean snapshotCaptureInitiated; public MockRaftActorContext(){ electionTerm = null; @@ -53,17 +53,20 @@ public class MockRaftActorContext implements RaftActorContext { * Identifier of the actor whose election term information this is */ private final String id = id1; - private long currentTerm = 0; + private long currentTerm = 1; private String votedFor = ""; + @Override public long getCurrentTerm() { return currentTerm; } + @Override public String getVotedFor() { return votedFor; } + @Override public void update(long currentTerm, String votedFor){ this.currentTerm = currentTerm; this.votedFor = votedFor; @@ -85,7 +88,9 @@ public class MockRaftActorContext implements RaftActorContext { public void initReplicatedLog(){ this.replicatedLog = new SimpleReplicatedLog(); - this.replicatedLog.append(new MockReplicatedLogEntry(1, 1, new MockPayload(""))); + long term = getTermInformation().getCurrentTerm(); + this.replicatedLog.append(new MockReplicatedLogEntry(term, 0, new MockPayload("1"))); + this.replicatedLog.append(new MockReplicatedLogEntry(term, 1, new MockPayload("2"))); } @Override public ActorRef actorOf(Props props) { @@ -128,6 +133,7 @@ public class MockRaftActorContext implements RaftActorContext { return lastApplied; } + @Override public void setReplicatedLog(ReplicatedLog replicatedLog) { this.replicatedLog = replicatedLog; } @@ -140,8 +146,8 @@ public class MockRaftActorContext implements RaftActorContext { return this.system; } - @Override public LoggingAdapter getLogger() { - return Logging.getLogger(system, this); + @Override public Logger getLogger() { + return LoggerFactory.getLogger(getClass()); } @Override public Map getPeerAddresses() { @@ -182,6 +188,16 @@ public class MockRaftActorContext implements RaftActorContext { return configParams; } + @Override + public void setSnapshotCaptureInitiated(boolean snapshotCaptureInitiated) { + this.snapshotCaptureInitiated = snapshotCaptureInitiated; + } + + @Override + public boolean isSnapshotCaptureInitiated() { + return snapshotCaptureInitiated; + } + public void setConfigParams(ConfigParams configParams) { this.configParams = configParams; } @@ -192,13 +208,18 @@ public class MockRaftActorContext implements RaftActorContext { append(replicatedLogEntry); } + @Override + public int dataSize() { + return -1; + } + @Override public void removeFromAndPersist(long index) { removeFrom(index); } } public static class MockPayload extends Payload implements Serializable { - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = 3121380393130864247L; private String value = ""; public MockPayload(){ @@ -222,13 +243,49 @@ public class MockRaftActorContext implements RaftActorContext { return this; } + @Override + public int size() { + return value.length(); + } + @Override public String getClientPayloadClassName() { return MockPayload.class.getName(); } + @Override public String toString() { return value; } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((value == null) ? 0 : value.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + MockPayload other = (MockPayload) obj; + if (value == null) { + if (other.value != null) { + return false; + } + } else if (!value.equals(other.value)) { + return false; + } + return true; + } } public static class MockReplicatedLogEntry implements ReplicatedLogEntry, Serializable { @@ -256,10 +313,61 @@ public class MockRaftActorContext implements RaftActorContext { @Override public long getIndex() { return index; } + + @Override + public int size() { + return getData().size(); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((data == null) ? 0 : data.hashCode()); + result = prime * result + (int) (index ^ (index >>> 32)); + result = prime * result + (int) (term ^ (term >>> 32)); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + MockReplicatedLogEntry other = (MockReplicatedLogEntry) obj; + if (data == null) { + if (other.data != null) { + return false; + } + } else if (!data.equals(other.data)) { + return false; + } + if (index != other.index) { + return false; + } + if (term != other.term) { + return false; + } + return true; + } + + @Override + public String toString() { + StringBuilder builder = new StringBuilder(); + builder.append("MockReplicatedLogEntry [term=").append(term).append(", index=").append(index) + .append(", data=").append(data).append("]"); + return builder.toString(); + } } public static class MockReplicatedLogBuilder { - private ReplicatedLog mockLog = new SimpleReplicatedLog(); + private final ReplicatedLog mockLog = new SimpleReplicatedLog(); public MockReplicatedLogBuilder createEntries(int start, int end, int term) { for (int i=start; i