2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.controller.cluster.raft;
11 import akka.actor.ActorRef;
12 import akka.actor.ActorSelection;
13 import akka.actor.ActorSystem;
14 import akka.actor.Props;
16 public class MockRaftActorContext implements RaftActorContext {
19 private ActorSystem system;
20 private ActorRef actor;
21 private long index = 0;
22 private long lastApplied = 0;
23 private final ElectionTerm electionTerm;
24 private ReplicatedLog replicatedLog;
26 public MockRaftActorContext(){
32 public MockRaftActorContext(String id, ActorSystem system, ActorRef actor){
37 electionTerm = new ElectionTermImpl(id);
43 public void initReplicatedLog(){
44 MockReplicatedLog mockReplicatedLog = new MockReplicatedLog();
45 this.replicatedLog = mockReplicatedLog;
46 mockReplicatedLog.setLast(new MockReplicatedLogEntry(1,1,""));
47 mockReplicatedLog.setReplicatedLogEntry(new MockReplicatedLogEntry(1,1, ""));
50 @Override public ActorRef actorOf(Props props) {
51 return system.actorOf(props);
54 @Override public ActorSelection actorSelection(String path) {
55 return system.actorSelection(path);
58 @Override public String getId() {
62 @Override public ActorRef getActor() {
66 @Override public ElectionTerm getTermInformation() {
70 public void setIndex(long index){
74 @Override public long getCommitIndex() {
78 @Override public void setCommitIndex(long commitIndex) {
79 this.index = commitIndex;
82 @Override public void setLastApplied(long lastApplied){
83 this.lastApplied = lastApplied;
86 @Override public long getLastApplied() {
90 public void setReplicatedLog(ReplicatedLog replicatedLog) {
91 this.replicatedLog = replicatedLog;
94 @Override public ReplicatedLog getReplicatedLog() {
98 @Override public ActorSystem getActorSystem() {
103 public static class MockReplicatedLog implements ReplicatedLog {
104 private ReplicatedLogEntry replicatedLogEntry = new MockReplicatedLogEntry(0,0, "");
105 private ReplicatedLogEntry last = new MockReplicatedLogEntry(0,0, "");
107 @Override public ReplicatedLogEntry getReplicatedLogEntry(long index) {
108 return replicatedLogEntry;
111 @Override public ReplicatedLogEntry last() {
115 public void setReplicatedLogEntry(
116 ReplicatedLogEntry replicatedLogEntry) {
117 this.replicatedLogEntry = replicatedLogEntry;
120 public void setLast(ReplicatedLogEntry last) {
125 public static class MockReplicatedLogEntry implements ReplicatedLogEntry {
127 private final long term;
128 private final long index;
129 private final Object data;
131 public MockReplicatedLogEntry(long term, long index, Object data){
138 @Override public Object getData() {
142 @Override public long getTerm() {
146 @Override public long getIndex() {