Convert DCL tests to use DTCL
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / test / java / org / opendaylight / controller / cluster / databroker / compat / LegacyDOMDataBrokerAdapterTest.java
index b6e7682b1a1d6e1b48c3043398b4719b86b1a80a..dfc0ae1c920909e6ca47915d3b0abc2ced0f61f9 100644 (file)
@@ -24,13 +24,13 @@ import static org.mockito.Mockito.verify;
 import com.google.common.base.Optional;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.util.concurrent.CheckedFuture;
-import com.google.common.util.concurrent.FluentFuture;
 import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.MoreExecutors;
 import java.util.Arrays;
 import java.util.Collection;
+import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
-import org.eclipse.jdt.annotation.NonNull;
+import java.util.concurrent.TimeoutException;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.ArgumentCaptor;
@@ -41,7 +41,6 @@ import org.opendaylight.controller.cluster.databroker.ConcurrentDOMDataBroker;
 import org.opendaylight.controller.cluster.datastore.DistributedDataStoreInterface;
 import org.opendaylight.controller.cluster.datastore.exceptions.NoShardLeaderException;
 import org.opendaylight.controller.md.cluster.datastore.model.TestModel;
-import org.opendaylight.controller.md.sal.common.api.data.AsyncDataBroker.DataChangeScope;
 import org.opendaylight.controller.md.sal.common.api.data.AsyncTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.DataStoreUnavailableException;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
@@ -50,7 +49,6 @@ import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
 import org.opendaylight.controller.md.sal.common.api.data.TransactionChainListener;
 import org.opendaylight.controller.md.sal.common.api.data.TransactionCommitFailedException;
 import org.opendaylight.controller.md.sal.dom.api.ClusteredDOMDataTreeChangeListener;
-import org.opendaylight.controller.md.sal.dom.api.DOMDataChangeListener;
 import org.opendaylight.controller.md.sal.dom.api.DOMDataReadOnlyTransaction;
 import org.opendaylight.controller.md.sal.dom.api.DOMDataReadWriteTransaction;
 import org.opendaylight.controller.md.sal.dom.api.DOMDataTreeChangeListener;
@@ -59,7 +57,6 @@ import org.opendaylight.controller.md.sal.dom.api.DOMDataTreeCommitCohortRegistr
 import org.opendaylight.controller.md.sal.dom.api.DOMDataTreeIdentifier;
 import org.opendaylight.controller.md.sal.dom.api.DOMDataWriteTransaction;
 import org.opendaylight.controller.md.sal.dom.api.DOMTransactionChain;
-import org.opendaylight.mdsal.common.api.CommitInfo;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeCommitCohort;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeCommitCohortRegistration;
 import org.opendaylight.mdsal.dom.spi.store.DOMStoreReadTransaction;
@@ -198,8 +195,7 @@ public class LegacyDOMDataBrokerAdapterTest {
         tx.delete(LogicalDatastoreType.CONFIGURATION, TestModel.TEST_PATH);
         verify(mockWriteTx).delete(TestModel.TEST_PATH);
 
-        CheckedFuture<Void, TransactionCommitFailedException> submitFuture = tx.submit();
-        submitFuture.get(5, TimeUnit.SECONDS);
+        tx.commit().get(5, TimeUnit.SECONDS);
 
         InOrder inOrder = inOrder(mockCommitCohort);
         inOrder.verify(mockCommitCohort).canCommit();
@@ -223,8 +219,7 @@ public class LegacyDOMDataBrokerAdapterTest {
         try {
             tx = adapter.newWriteOnlyTransaction();
             tx.put(LogicalDatastoreType.CONFIGURATION, TestModel.TEST_PATH, dataNode);
-            submitFuture = tx.submit();
-            submitFuture.checkedGet(5, TimeUnit.SECONDS);
+            commit(tx);
             fail("Expected OptimisticLockFailedException");
         } catch (OptimisticLockFailedException e) {
             assertEquals("getMessage", errorMsg, e.getMessage());
@@ -241,8 +236,7 @@ public class LegacyDOMDataBrokerAdapterTest {
         try {
             tx = adapter.newWriteOnlyTransaction();
             tx.put(LogicalDatastoreType.CONFIGURATION, TestModel.TEST_PATH, dataNode);
-            submitFuture = tx.submit();
-            submitFuture.checkedGet(5, TimeUnit.SECONDS);
+            commit(tx);
             fail("Expected TransactionCommitFailedException");
         } catch (TransactionCommitFailedException e) {
             assertEquals("getMessage", errorMsg, e.getMessage());
@@ -258,8 +252,7 @@ public class LegacyDOMDataBrokerAdapterTest {
         try {
             tx = adapter.newWriteOnlyTransaction();
             tx.put(LogicalDatastoreType.CONFIGURATION, TestModel.TEST_PATH, dataNode);
-            submitFuture = tx.submit();
-            submitFuture.checkedGet(5, TimeUnit.SECONDS);
+            commit(tx);
             fail("Expected TransactionCommitFailedException");
         } catch (TransactionCommitFailedException e) {
             assertEquals("getCause type", DataStoreUnavailableException.class, e.getCause().getClass());
@@ -275,8 +268,7 @@ public class LegacyDOMDataBrokerAdapterTest {
         try {
             tx = adapter.newWriteOnlyTransaction();
             tx.put(LogicalDatastoreType.CONFIGURATION, TestModel.TEST_PATH, dataNode);
-            submitFuture = tx.submit();
-            submitFuture.checkedGet(5, TimeUnit.SECONDS);
+            commit(tx);
             fail("Expected TransactionCommitFailedException");
         } catch (TransactionCommitFailedException e) {
             assertEquals("getCause", cause, e.getCause());
@@ -296,8 +288,7 @@ public class LegacyDOMDataBrokerAdapterTest {
         tx.put(LogicalDatastoreType.CONFIGURATION, TestModel.TEST_PATH, dataNode);
         verify(mockReadWriteTx).write(TestModel.TEST_PATH, dataNode);
 
-        CheckedFuture<Void, TransactionCommitFailedException> submitFuture = tx.submit();
-        submitFuture.get(5, TimeUnit.SECONDS);
+        tx.commit().get(5, TimeUnit.SECONDS);
 
         InOrder inOrder = inOrder(mockCommitCohort);
         inOrder.verify(mockCommitCohort).canCommit();
@@ -330,8 +321,7 @@ public class LegacyDOMDataBrokerAdapterTest {
 
         writeTx.put(LogicalDatastoreType.CONFIGURATION, TestModel.TEST_PATH, dataNode);
         verify(mockWriteTx).write(TestModel.TEST_PATH, dataNode);
-        CheckedFuture<Void, TransactionCommitFailedException> submitFuture = writeTx.submit();
-        submitFuture.get(5, TimeUnit.SECONDS);
+        writeTx.commit().get(5, TimeUnit.SECONDS);
 
         InOrder inOrder = inOrder(mockCommitCohort);
         inOrder.verify(mockCommitCohort).canCommit();
@@ -361,7 +351,7 @@ public class LegacyDOMDataBrokerAdapterTest {
 
         try {
             writeTx.put(LogicalDatastoreType.CONFIGURATION, TestModel.TEST_PATH, dataNode);
-            writeTx.submit().checkedGet(5, TimeUnit.SECONDS);
+            commit(writeTx);
             fail("Expected TransactionCommitFailedException");
         } catch (TransactionCommitFailedException e) {
             // expected
@@ -442,33 +432,46 @@ public class LegacyDOMDataBrokerAdapterTest {
     }
 
     @Test
-    public void testDataChangeListener() {
-        DOMDataChangeListener listener = mock(DOMDataChangeListener.class);
-        ListenerRegistration<DOMDataChangeListener> mockReg = mock(ListenerRegistration.class);
-        doReturn(mockReg).when(mockConfigStore).registerChangeListener(
-                TestModel.TEST_PATH, listener, DataChangeScope.ONE);
-
-        ListenerRegistration<DOMDataChangeListener> reg = adapter.registerDataChangeListener(
-                LogicalDatastoreType.CONFIGURATION, TestModel.TEST_PATH, listener, DataChangeScope.ONE);
-        assertEquals("ListenerRegistration<DOMDataChangeListener>", mockReg, reg);
-
-        verify(mockConfigStore).registerChangeListener(TestModel.TEST_PATH, listener, DataChangeScope.ONE);
-    }
-
-    @Test
-    public void testCommit() throws Exception {
+    @Deprecated
+    public void testSubmit() throws Exception {
         DOMDataWriteTransaction tx = adapter.newWriteOnlyTransaction();
 
         tx.put(LogicalDatastoreType.CONFIGURATION, TestModel.TEST_PATH, dataNode);
         verify(mockWriteTx).write(TestModel.TEST_PATH, dataNode);
 
-        @NonNull FluentFuture<? extends @NonNull CommitInfo> commitFuture = tx.commit();
-        commitFuture.get(5, TimeUnit.SECONDS);
+        tx.submit().get(5, TimeUnit.SECONDS);
 
         InOrder inOrder = inOrder(mockCommitCohort);
         inOrder.verify(mockCommitCohort).canCommit();
         inOrder.verify(mockCommitCohort).preCommit();
         inOrder.verify(mockCommitCohort).commit();
+
+        String errorMsg = "mock OptimisticLockFailedException";
+        Throwable cause = new ConflictingModificationAppliedException(TestModel.TEST_PATH, "mock");
+        doReturn(Futures.immediateFailedFuture(new org.opendaylight.mdsal.common.api.TransactionCommitFailedException(
+                errorMsg, cause))).when(mockCommitCohort).canCommit();
+
+        try {
+            tx = adapter.newWriteOnlyTransaction();
+            tx.put(LogicalDatastoreType.CONFIGURATION, TestModel.TEST_PATH, dataNode);
+            commit(tx);
+            fail("Expected TransactionCommitFailedException");
+        } catch (TransactionCommitFailedException e) {
+            assertEquals("getMessage", errorMsg, e.getMessage());
+            assertEquals("getCause", cause, e.getCause());
+        }
+    }
+
+    @SuppressWarnings("checkstyle:AvoidHidingCauseException")
+    private static void commit(DOMDataWriteTransaction tx)
+            throws TransactionCommitFailedException, InterruptedException, TimeoutException {
+        try {
+            tx.commit().get(5, TimeUnit.SECONDS);
+        } catch (ExecutionException e) {
+            assertTrue("Expected TransactionCommitFailedException. Actual: " + e.getCause(),
+                    e.getCause() instanceof TransactionCommitFailedException);
+            throw (TransactionCommitFailedException)e.getCause();
+        }
     }
 
     private interface TestDOMStore extends DistributedDataStoreInterface, DOMStoreTreeChangePublisher,