X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fmd-sal%2Fsal-akka-raft%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fraft%2FMockRaftActor.java;h=a6853caf9ea78fbbd45421a049858ec948e24678;hb=f12d62d2dc28a883c1f1b38df7d72a9142c2abfb;hp=3275e8d6c480e20d8ef5ee06914c211c03679049;hpb=47b382cfd70014ff286c5a107da964f23f1df467;p=controller.git diff --git a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/MockRaftActor.java b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/MockRaftActor.java index 3275e8d6c4..a6853caf9e 100644 --- a/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/MockRaftActor.java +++ b/opendaylight/md-sal/sal-akka-raft/src/test/java/org/opendaylight/controller/cluster/raft/MockRaftActor.java @@ -37,6 +37,7 @@ public class MockRaftActor extends RaftActor implements RaftActorRecoveryCohort, private ActorRef roleChangeNotifier; private final CountDownLatch initializeBehaviorComplete = new CountDownLatch(1); private RaftActorRecoverySupport raftActorRecoverySupport; + private RaftActorSnapshotMessageSupport snapshotMessageSupport; public static final class MockRaftActorCreator implements Creator { private static final long serialVersionUID = 1L; @@ -45,6 +46,7 @@ public class MockRaftActor extends RaftActor implements RaftActorRecoveryCohort, private final Optional config; private final DataPersistenceProvider dataPersistenceProvider; private final ActorRef roleChangeNotifier; + private RaftActorSnapshotMessageSupport snapshotMessageSupport; private MockRaftActorCreator(Map peerAddresses, String id, Optional config, DataPersistenceProvider dataPersistenceProvider, @@ -61,13 +63,14 @@ public class MockRaftActor extends RaftActor implements RaftActorRecoveryCohort, MockRaftActor mockRaftActor = new MockRaftActor(id, peerAddresses, config, dataPersistenceProvider); mockRaftActor.roleChangeNotifier = this.roleChangeNotifier; + mockRaftActor.snapshotMessageSupport = snapshotMessageSupport; return mockRaftActor; } } public MockRaftActor(String id, Map peerAddresses, Optional config, DataPersistenceProvider dataPersistenceProvider) { - super(id, peerAddresses, config); + super(id, peerAddresses, config, (short) 0); state = new ArrayList<>(); this.actorDelegate = mock(RaftActor.class); this.recoveryCohortDelegate = mock(RaftActorRecoveryCohort.class); @@ -88,6 +91,11 @@ public class MockRaftActor extends RaftActor implements RaftActorRecoveryCohort, return raftActorRecoverySupport != null ? raftActorRecoverySupport : super.newRaftActorRecoverySupport(); } + @Override + protected RaftActorSnapshotMessageSupport newRaftActorSnapshotMessageSupport() { + return snapshotMessageSupport != null ? snapshotMessageSupport : super.newRaftActorSnapshotMessageSupport(); + } + public void waitForRecoveryComplete() { try { assertEquals("Recovery complete", true, recoveryComplete.await(5, TimeUnit.SECONDS)); @@ -123,6 +131,13 @@ public class MockRaftActor extends RaftActor implements RaftActorRecoveryCohort, return Props.create(new MockRaftActorCreator(peerAddresses, id, config, null, null)); } + public static Props props(final String id, final Map peerAddresses, + Optional config, RaftActorSnapshotMessageSupport snapshotMessageSupport){ + MockRaftActorCreator creator = new MockRaftActorCreator(peerAddresses, id, config, null, null); + creator.snapshotMessageSupport = snapshotMessageSupport; + return Props.create(creator); + } + public static Props props(final String id, final Map peerAddresses, Optional config, DataPersistenceProvider dataPersistenceProvider){ return Props.create(new MockRaftActorCreator(peerAddresses, id, config, dataPersistenceProvider, null)); @@ -139,10 +154,11 @@ public class MockRaftActor extends RaftActor implements RaftActorRecoveryCohort, return Props.create(new MockRaftActorCreator(peerAddresses, id, config, dataPersistenceProvider, roleChangeNotifier)); } - @Override protected void applyState(ActorRef clientActor, String identifier, Object data) { actorDelegate.applyState(clientActor, identifier, data); - LOG.info("{}: applyState called", persistenceId()); + LOG.info("{}: applyState called: {}", persistenceId(), data); + + state.add(data); } @Override @@ -220,7 +236,7 @@ public class MockRaftActor extends RaftActor implements RaftActorRecoveryCohort, return this.getId(); } - private Object toObject(byte[] bs) throws ClassNotFoundException, IOException { + public static Object toObject(byte[] bs) throws ClassNotFoundException, IOException { Object obj = null; ByteArrayInputStream bis = null; ObjectInputStream ois = null;