package org.opendaylight.controller.cluster.datastore;
import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyBoolean;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.inOrder;
import com.google.common.util.concurrent.FutureCallback;
import org.mockito.InOrder;
import org.mockito.invocation.InvocationOnMock;
+import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier;
+import org.opendaylight.controller.cluster.datastore.persisted.CommitTransactionPayload;
+import org.opendaylight.controller.cluster.raft.protobuff.client.messages.Payload;
import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
public final class ShardDataTreeMocking {
@SuppressWarnings("unchecked")
public static ShardDataTreeCohort failedCanCommit(final ShardDataTreeCohort mock) {
- doAnswer(invocation -> {
- return invokeFailure(invocation);
- }).when(mock).canCommit(any(FutureCallback.class));
+ doAnswer(ShardDataTreeMocking::invokeFailure).when(mock).canCommit(any(FutureCallback.class));
return mock;
}
@SuppressWarnings("unchecked")
public static ShardDataTreeCohort failedPreCommit(final ShardDataTreeCohort mock) {
- doAnswer(invocation -> {
- return invokeFailure(invocation);
- }).when(mock).preCommit(any(FutureCallback.class));
+ doAnswer(ShardDataTreeMocking::invokeFailure).when(mock).preCommit(any(FutureCallback.class));
return mock;
}
@SuppressWarnings("unchecked")
public static ShardDataTreeCohort failedCommit(final ShardDataTreeCohort mock) {
- doAnswer(invocation -> {
- return invokeFailure(invocation);
- }).when(mock).commit(any(FutureCallback.class));
+ doAnswer(ShardDataTreeMocking::invokeFailure).when(mock).commit(any(FutureCallback.class));
return mock;
}
@SuppressWarnings("unchecked")
public static ShardDataTreeCohort successfulCanCommit(final ShardDataTreeCohort mock) {
- doAnswer(invocation -> {
- return invokeSuccess(invocation, null);
- }).when(mock).canCommit(any(FutureCallback.class));
+ doAnswer(invocation -> invokeSuccess(invocation, null)).when(mock).canCommit(any(FutureCallback.class));
return mock;
}
@SuppressWarnings("unchecked")
public static ShardDataTreeCohort successfulPreCommit(final ShardDataTreeCohort mock,
final DataTreeCandidate candidate) {
- doAnswer(invocation -> {
- return invokeSuccess(invocation, candidate);
- }).when(mock).preCommit(any(FutureCallback.class));
+ doAnswer(invocation -> invokeSuccess(invocation, candidate)).when(mock).preCommit(any(FutureCallback.class));
return mock;
}
@SuppressWarnings("unchecked")
public static ShardDataTreeCohort successfulCommit(final ShardDataTreeCohort mock, final UnsignedLong index) {
- doAnswer(invocation -> {
- return invokeSuccess(invocation, index);
- }).when(mock).commit(any(FutureCallback.class));
+ doAnswer(invocation -> invokeSuccess(invocation, index)).when(mock).commit(any(FutureCallback.class));
return mock;
}
inOrder.verify(mock).preCommit(any(FutureCallback.class));
inOrder.verify(mock).commit(any(FutureCallback.class));
}
+
+ public static void immediatePayloadReplication(final ShardDataTree shardDataTree, final Shard mockShard) {
+ doAnswer(invocation -> {
+ shardDataTree.applyReplicatedPayload(invocation.getArgumentAt(0, TransactionIdentifier.class),
+ invocation.getArgumentAt(1, Payload.class));
+ return null;
+ }).when(mockShard).persistPayload(any(TransactionIdentifier.class), any(CommitTransactionPayload.class),
+ anyBoolean());
+ }
}