Further Guava Optional cleanups
[controller.git] / opendaylight / md-sal / sal-akka-raft / src / test / java / org / opendaylight / controller / cluster / raft / RecoveryIntegrationSingleNodeTest.java
index 657905e8223075cad7b8a43c04de9360d467f2b4..7004ca88787707c7b094d4c1e520db9fed5076bb 100644 (file)
@@ -18,6 +18,7 @@ import java.util.List;
 import org.junit.Before;
 import org.junit.Test;
 import org.opendaylight.controller.cluster.raft.persisted.ApplyJournalEntries;
+import org.opendaylight.controller.cluster.raft.persisted.Snapshot;
 import org.opendaylight.controller.cluster.raft.utils.InMemoryJournal;
 import org.opendaylight.controller.cluster.raft.utils.InMemorySnapshotStore;
 import org.opendaylight.controller.cluster.raft.utils.MessageCollectorActor;
@@ -38,7 +39,7 @@ public class RecoveryIntegrationSingleNodeTest extends AbstractRaftActorIntegrat
 
 
     @Test
-    public void testJournalReplayAfterSnapshotWithSingleNode() throws Exception {
+    public void testJournalReplayAfterSnapshotWithSingleNode() {
 
         String persistenceId = factory.generateActorId("singleNode");
         TestActorRef<AbstractRaftActorIntegrationTest.TestRaftActor> singleNodeActorRef =
@@ -49,6 +50,7 @@ public class RecoveryIntegrationSingleNodeTest extends AbstractRaftActorIntegrat
         ActorRef singleNodeCollectorActor = singleNodeActorRef.underlyingActor().collectorActor();
         final RaftActorContext singleNodeContext = singleNodeActorRef.underlyingActor().getRaftActorContext();
 
+        InMemoryJournal.addWriteMessagesCompleteLatch(persistenceId, 6, ApplyJournalEntries.class);
 
         final MockRaftActorContext.MockPayload payload0 = sendPayloadData(singleNodeActorRef, "zero");
         final MockRaftActorContext.MockPayload payload1 = sendPayloadData(singleNodeActorRef, "one");
@@ -76,14 +78,15 @@ public class RecoveryIntegrationSingleNodeTest extends AbstractRaftActorIntegrat
         assertEquals("Incorrect State after snapshot success is received ", Lists.newArrayList(payload0, payload1,
                 payload2, payload3, payload4, payload5), singleNodeActorRef.underlyingActor().getState());
 
+        InMemoryJournal.waitForWriteMessagesComplete(persistenceId);
+
         // we get 2 log entries (4 and 5 indexes) and 3 ApplyJournalEntries (for 3, 4, and 5 indexes)
         assertEquals(5, InMemoryJournal.get(persistenceId).size());
 
         List<Snapshot> persistedSnapshots = InMemorySnapshotStore.getSnapshots(persistenceId, Snapshot.class);
         assertEquals(1, persistedSnapshots.size());
 
-        @SuppressWarnings("unchecked")
-        List<Object> snapshottedState = (List<Object>)MockRaftActor.toObject(persistedSnapshots.get(0).getState());
+        List<Object> snapshottedState = MockRaftActor.fromState(persistedSnapshots.get(0).getState());
         assertEquals("Incorrect Snapshot", Lists.newArrayList(payload0, payload1, payload2, payload3),
                 snapshottedState);