sort by descending number of suspected transaction leaks in trace output
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / test / java / org / opendaylight / controller / cluster / datastore / SimpleShardDataTreeCohortTest.java
index 232d9aa618a0b88909d00d7788dee12df8e5a11f..4550894fed33c07f30d8e7ba6b2a133df387297a 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.controller.cluster.datastore;
 import static org.junit.Assert.assertSame;
 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.mock;
 import static org.mockito.Mockito.never;
@@ -19,9 +18,9 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
 
 import com.google.common.primitives.UnsignedLong;
 import com.google.common.util.concurrent.FutureCallback;
-import com.google.common.util.concurrent.ListenableFuture;
-import java.util.Collections;
 import java.util.Optional;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.Future;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mock;
@@ -32,7 +31,6 @@ import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateTip;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
-import scala.concurrent.Promise;
 
 /**
  * Unit tests for SimpleShardDataTreeCohort.
@@ -58,7 +56,7 @@ public class SimpleShardDataTreeCohortTest extends AbstractTest {
     public void setup() throws Exception {
         MockitoAnnotations.initMocks(this);
 
-        doNothing().when(mockUserCohorts).commit();
+        doReturn(Optional.empty()).when(mockUserCohorts).commit();
         doReturn(Optional.empty()).when(mockUserCohorts).abort();
 
         cohort = new SimpleShardDataTreeCohort(mockShardDataTree, mockModification, nextTransactionId(),
@@ -138,7 +136,8 @@ public class SimpleShardDataTreeCohortTest extends AbstractTest {
         final DataTreeCandidateTip candidate = preCommitSuccess();
 
         doAnswer(invocation -> {
-            invocation.getArgumentAt(0, SimpleShardDataTreeCohort.class).successfulCommit(UnsignedLong.valueOf(0));
+            invocation.getArgumentAt(0, SimpleShardDataTreeCohort.class).successfulCommit(UnsignedLong.valueOf(0),
+                () -> { });
             return null;
         }).when(mockShardDataTree).startCommit(cohort, candidate);
 
@@ -210,25 +209,38 @@ public class SimpleShardDataTreeCohortTest extends AbstractTest {
         verify(mockUserCohorts).abort();
     }
 
+    private static Future<?> abort(final ShardDataTreeCohort cohort) {
+        final CompletableFuture<Void> f = new CompletableFuture<>();
+        cohort.abort(new FutureCallback<Void>() {
+            @Override
+            public void onSuccess(final Void result) {
+                f.complete(null);
+            }
+
+            @Override
+            public void onFailure(final Throwable failure) {
+                f.completeExceptionally(failure);
+            }
+        });
+
+        return f;
+    }
+
     @Test
     public void testAbort() throws Exception {
-        doNothing().when(mockShardDataTree).startAbort(cohort);
-
-        cohort.abort().get();
+        doReturn(Boolean.TRUE).when(mockShardDataTree).startAbort(cohort);
 
+        abort(cohort).get();
         verify(mockShardDataTree).startAbort(cohort);
     }
 
     @Test
     public void testAbortWithCohorts() throws Exception {
-        doNothing().when(mockShardDataTree).startAbort(cohort);
-
-        final Promise<Iterable<Object>> cohortFuture = akka.dispatch.Futures.promise();
-        doReturn(Optional.of(cohortFuture.future())).when(mockUserCohorts).abort();
+        doReturn(true).when(mockShardDataTree).startAbort(cohort);
 
-        final ListenableFuture<Void> abortFuture = cohort.abort();
+        doReturn(Optional.of(CompletableFuture.completedFuture(null))).when(mockUserCohorts).abort();
 
-        cohortFuture.success(Collections.emptyList());
+        final Future<?> abortFuture = abort(cohort);
 
         abortFuture.get();
         verify(mockShardDataTree).startAbort(cohort);