*/
package org.opendaylight.controller.cluster.raft;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.verify;
import akka.japi.Procedure;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
import org.opendaylight.controller.cluster.DataPersistenceProvider;
import org.opendaylight.controller.cluster.PersistentDataProvider;
import org.opendaylight.controller.cluster.raft.protobuff.client.messages.Payload;
private RaftActorDelegatingPersistentDataProvider provider;
+ @SuppressWarnings("unchecked")
@Before
- public void setup() {
+ public void setup() throws Exception {
MockitoAnnotations.initMocks(this);
doReturn(PERSISTENT_PAYLOAD).when(mockPersistentLogEntry).getData();
doReturn(NON_PERSISTENT_PAYLOAD).when(mockNonPersistentLogEntry).getData();
+
+ doAnswer(new Answer<Void>() {
+ @Override
+ public Void answer(InvocationOnMock invocation) throws Exception {
+ final Object[] args = invocation.getArguments();
+ ((Procedure<Object>)args[1]).apply(args[0]);
+ return null;
+ }
+ }).when(mockPersistentProvider).persist(any(Object.class), any(Procedure.class));
+
+ doNothing().when(mockDelegateProvider).persist(any(Object.class), any(Procedure.class));
+ doNothing().when(mockProcedure).apply(any(Object.class));
provider = new RaftActorDelegatingPersistentDataProvider(mockDelegateProvider, mockPersistentProvider);
}