+ assertEquals("Current term", 5, context.getTermInformation().getCurrentTerm());
+ assertEquals("Voted For", "member2", context.getTermInformation().getVotedFor());
+
+ sendMessageToSupport(RecoveryCompleted.getInstance(), true);
+
+ verifyNoMoreInteractions(mockCohort);
+
+ verify(mockPersistentProvider).deleteMessages(10L);
+ verify(mockPersistentProvider).deleteSnapshots(any(SnapshotSelectionCriteria.class));
+ verify(mockPersistentProvider).persist(updateElectionTerm(5, "member2"), any(Procedure.class));
+ }
+
+ static UpdateElectionTerm updateElectionTerm(final long term, final String votedFor) {
+ return Matchers.argThat(new ArgumentMatcher<UpdateElectionTerm>() {
+ @Override
+ public boolean matches(Object argument) {
+ UpdateElectionTerm other = (UpdateElectionTerm) argument;
+ return term == other.getCurrentTerm() && votedFor.equals(other.getVotedFor());
+ }
+
+ @Override
+ public void describeTo(Description description) {
+ description.appendValue(new UpdateElectionTerm(term, votedFor));
+ }
+ });
+ }
+
+ @Test
+ public void testNoDataRecoveredWithPersistenceDisabled() {
+ doReturn(false).when(mockPersistence).isRecoveryApplicable();
+