X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FSimpleShardDataTreeCohortTest.java;h=7a4cb9b5efecc3233826c92f6ac7331bce478e4a;hb=9905bf0575ff196a531eb114e89b1bdb7226bc6c;hp=232d9aa618a0b88909d00d7788dee12df8e5a11f;hpb=5464f50be733df1bbbe31cf05665d542d3b7c5e7;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/SimpleShardDataTreeCohortTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/SimpleShardDataTreeCohortTest.java index 232d9aa618..7a4cb9b5ef 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/SimpleShardDataTreeCohortTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/SimpleShardDataTreeCohortTest.java @@ -8,9 +8,8 @@ package org.opendaylight.controller.cluster.datastore; import static org.junit.Assert.assertSame; -import static org.mockito.Matchers.any; +import static org.mockito.ArgumentMatchers.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. @@ -55,24 +53,24 @@ public class SimpleShardDataTreeCohortTest extends AbstractTest { private SimpleShardDataTreeCohort cohort; @Before - public void setup() throws Exception { + public void setup() { 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(), - mockUserCohorts); + mockUserCohorts, Optional.empty()); } @Test - public void testCanCommitSuccess() throws Exception { + public void testCanCommitSuccess() { canCommitSuccess(); } private void canCommitSuccess() { doAnswer(invocation -> { - invocation.getArgumentAt(0, SimpleShardDataTreeCohort.class).successfulCanCommit(); + invocation.getArgument(0).successfulCanCommit(); return null; }).when(mockShardDataTree).startCanCommit(cohort); @@ -84,9 +82,9 @@ public class SimpleShardDataTreeCohortTest extends AbstractTest { verifyNoMoreInteractions(callback); } - private void testValidatationPropagates(final Exception cause) throws DataValidationFailedException { + private void testValidatationPropagates(final Exception cause) { doAnswer(invocation -> { - invocation.getArgumentAt(0, SimpleShardDataTreeCohort.class).failedCanCommit(cause); + invocation.getArgument(0).failedCanCommit(cause); return null; }).when(mockShardDataTree).startCanCommit(cohort); @@ -99,24 +97,24 @@ public class SimpleShardDataTreeCohortTest extends AbstractTest { } @Test - public void testCanCommitWithConflictingModEx() throws DataValidationFailedException { + public void testCanCommitWithConflictingModEx() { testValidatationPropagates(new ConflictingModificationAppliedException(YangInstanceIdentifier.EMPTY, "mock")); } @Test - public void testCanCommitWithDataValidationEx() throws DataValidationFailedException { + public void testCanCommitWithDataValidationEx() { testValidatationPropagates(new DataValidationFailedException(YangInstanceIdentifier.EMPTY, "mock")); } @Test - public void testCanCommitWithIllegalArgumentEx() throws DataValidationFailedException { + public void testCanCommitWithIllegalArgumentEx() { testValidatationPropagates(new IllegalArgumentException("mock")); } private DataTreeCandidateTip preCommitSuccess() { final DataTreeCandidateTip mockCandidate = mock(DataTreeCandidateTip.class); doAnswer(invocation -> { - invocation.getArgumentAt(0, SimpleShardDataTreeCohort.class).successfulPreCommit(mockCandidate); + invocation.getArgument(0).successfulPreCommit(mockCandidate); return null; }).when(mockShardDataTree).startPreCommit(cohort); @@ -133,12 +131,12 @@ public class SimpleShardDataTreeCohortTest extends AbstractTest { } @Test - public void testPreCommitAndCommitSuccess() throws Exception { + public void testPreCommitAndCommitSuccess() { canCommitSuccess(); final DataTreeCandidateTip candidate = preCommitSuccess(); doAnswer(invocation -> { - invocation.getArgumentAt(0, SimpleShardDataTreeCohort.class).successfulCommit(UnsignedLong.valueOf(0)); + invocation.getArgument(0).successfulCommit(UnsignedLong.valueOf(0), () -> { }); return null; }).when(mockShardDataTree).startCommit(cohort, candidate); @@ -153,12 +151,12 @@ public class SimpleShardDataTreeCohortTest extends AbstractTest { } @Test - public void testPreCommitWithIllegalArgumentEx() throws Exception { + public void testPreCommitWithIllegalArgumentEx() { canCommitSuccess(); final Exception cause = new IllegalArgumentException("mock"); doAnswer(invocation -> { - invocation.getArgumentAt(0, SimpleShardDataTreeCohort.class).failedPreCommit(cause); + invocation.getArgument(0).failedPreCommit(cause); return null; }).when(mockShardDataTree).startPreCommit(cohort); @@ -173,7 +171,7 @@ public class SimpleShardDataTreeCohortTest extends AbstractTest { } @Test - public void testPreCommitWithReportedFailure() throws Exception { + public void testPreCommitWithReportedFailure() { canCommitSuccess(); final Exception cause = new IllegalArgumentException("mock"); @@ -196,7 +194,7 @@ public class SimpleShardDataTreeCohortTest extends AbstractTest { final Exception cause = new IllegalArgumentException("mock"); doAnswer(invocation -> { - invocation.getArgumentAt(0, SimpleShardDataTreeCohort.class).failedCommit(cause); + invocation.getArgument(0).failedCommit(cause); return null; }).when(mockShardDataTree).startCommit(cohort, candidate); @@ -210,25 +208,38 @@ public class SimpleShardDataTreeCohortTest extends AbstractTest { verify(mockUserCohorts).abort(); } + private static Future abort(final ShardDataTreeCohort cohort) { + final CompletableFuture f = new CompletableFuture<>(); + cohort.abort(new FutureCallback() { + @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> cohortFuture = akka.dispatch.Futures.promise(); - doReturn(Optional.of(cohortFuture.future())).when(mockUserCohorts).abort(); + doReturn(true).when(mockShardDataTree).startAbort(cohort); - final ListenableFuture 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);