X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=dom%2Fmdsal-dom-spi%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fdom%2Fspi%2Fstore%2FSnapshotBackedWriteTransactionTest.java;h=ae8ce6c3f5603ab04326f529154fc55ccd0beddb;hb=11408d627adca7eb71ac956c3ad01f75b6b91596;hp=6eb33c285b1e946e88e741594b8958be62c1fb72;hpb=67d0d71b7218015f5eaf311d732a0db1dd079021;p=mdsal.git diff --git a/dom/mdsal-dom-spi/src/test/java/org/opendaylight/mdsal/dom/spi/store/SnapshotBackedWriteTransactionTest.java b/dom/mdsal-dom-spi/src/test/java/org/opendaylight/mdsal/dom/spi/store/SnapshotBackedWriteTransactionTest.java index 6eb33c285b..ae8ce6c3f5 100644 --- a/dom/mdsal-dom-spi/src/test/java/org/opendaylight/mdsal/dom/spi/store/SnapshotBackedWriteTransactionTest.java +++ b/dom/mdsal-dom-spi/src/test/java/org/opendaylight/mdsal/dom/spi/store/SnapshotBackedWriteTransactionTest.java @@ -9,7 +9,10 @@ package org.opendaylight.mdsal.dom.spi.store; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; -import static org.mockito.Matchers.any; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.same; +import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doThrow; @@ -17,15 +20,15 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import com.google.common.base.MoreObjects; -import com.google.common.base.Optional; +import java.util.Optional; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.opendaylight.mdsal.dom.spi.store.SnapshotBackedWriteTransaction.TransactionReadyPrototype; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification; +import org.opendaylight.yangtools.yang.data.tree.api.DataTreeSnapshot; public class SnapshotBackedWriteTransactionTest { @@ -35,8 +38,8 @@ public class SnapshotBackedWriteTransactionTest { mock(TransactionReadyPrototype.class); private static final DOMStoreThreePhaseCommitCohort DOM_STORE_THREE_PHASE_COMMIT_COHORT = mock(DOMStoreThreePhaseCommitCohort.class); - private static final NormalizedNode NORMALIZED_NODE = mock(NormalizedNode.class); - private static final Optional> NORMALIZED_NODE_OPTIONAL = Optional.of(NORMALIZED_NODE); + private static final NormalizedNode NORMALIZED_NODE = mock(NormalizedNode.class); + private static final Optional NORMALIZED_NODE_OPTIONAL = Optional.of(NORMALIZED_NODE); private static SnapshotBackedWriteTransaction snapshotBackedWriteTransaction; @Before @@ -49,25 +52,27 @@ public class SnapshotBackedWriteTransactionTest { doNothing().when(TRANSACTION_READY_PROTOTYPE).transactionAborted(any()); doReturn("testDataTreeModification").when(DATA_TREE_MODIFICATION).toString(); doReturn("testNormalizedNode").when(NORMALIZED_NODE).toString(); - doReturn(DOM_STORE_THREE_PHASE_COMMIT_COHORT).when(TRANSACTION_READY_PROTOTYPE).transactionReady(any(),any()); - doReturn(NORMALIZED_NODE_OPTIONAL).when(DATA_TREE_MODIFICATION).readNode(YangInstanceIdentifier.EMPTY); + doReturn(DOM_STORE_THREE_PHASE_COMMIT_COHORT) + .when(TRANSACTION_READY_PROTOTYPE) + .transactionReady(any(),any(), any()); + doReturn(NORMALIZED_NODE_OPTIONAL).when(DATA_TREE_MODIFICATION).readNode(YangInstanceIdentifier.empty()); snapshotBackedWriteTransaction = new SnapshotBackedWriteTransaction<>(new Object(), false, DATA_TREE_SNAPSHOT, TRANSACTION_READY_PROTOTYPE); } @Test public void basicTest() throws Exception { - snapshotBackedWriteTransaction.write(YangInstanceIdentifier.EMPTY, NORMALIZED_NODE); + snapshotBackedWriteTransaction.write(YangInstanceIdentifier.empty(), NORMALIZED_NODE); verify(DATA_TREE_MODIFICATION).write(any(), any()); - snapshotBackedWriteTransaction.merge(YangInstanceIdentifier.EMPTY, NORMALIZED_NODE); + snapshotBackedWriteTransaction.merge(YangInstanceIdentifier.empty(), NORMALIZED_NODE); verify(DATA_TREE_MODIFICATION).merge(any(), any()); - snapshotBackedWriteTransaction.delete(YangInstanceIdentifier.EMPTY); + snapshotBackedWriteTransaction.delete(YangInstanceIdentifier.empty()); verify(DATA_TREE_MODIFICATION).delete(any()); assertEquals(NORMALIZED_NODE_OPTIONAL, - snapshotBackedWriteTransaction.readSnapshotNode(YangInstanceIdentifier.EMPTY)); + snapshotBackedWriteTransaction.readSnapshotNode(YangInstanceIdentifier.empty())); verify(DATA_TREE_MODIFICATION).readNode(any()); assertTrue(snapshotBackedWriteTransaction.addToStringAttributes( @@ -80,26 +85,40 @@ public class SnapshotBackedWriteTransactionTest { SnapshotBackedWriteTransaction tx = new SnapshotBackedWriteTransaction<>(new Object(), false, DATA_TREE_SNAPSHOT, TRANSACTION_READY_PROTOTYPE); Assert.assertNotNull(tx.ready()); - verify(TRANSACTION_READY_PROTOTYPE).transactionReady(any(), any()); + verify(TRANSACTION_READY_PROTOTYPE).transactionReady(any(), any(), eq(null)); tx.close(); } + @Test + public void readyWithException() { + Exception thrown = new RuntimeException(); + doThrow(thrown).when(DATA_TREE_MODIFICATION).ready(); + Assert.assertNotNull(snapshotBackedWriteTransaction.ready()); + verify(TRANSACTION_READY_PROTOTYPE).transactionReady(any(), any(), same(thrown)); + } + @Test(expected = IllegalArgumentException.class) public void writeWithException() throws Exception { - doThrow(TestException.class).when(DATA_TREE_MODIFICATION).write(any(), any()); - snapshotBackedWriteTransaction.write(YangInstanceIdentifier.EMPTY, NORMALIZED_NODE); + doAnswer(inv -> { + throw new TestException(); + }).when(DATA_TREE_MODIFICATION).write(any(), any()); + snapshotBackedWriteTransaction.write(YangInstanceIdentifier.empty(), NORMALIZED_NODE); } @Test(expected = IllegalArgumentException.class) public void mergeWithException() throws Exception { - doThrow(TestException.class).when(DATA_TREE_MODIFICATION).merge(any(), any()); - snapshotBackedWriteTransaction.merge(YangInstanceIdentifier.EMPTY, NORMALIZED_NODE); + doAnswer(inv -> { + throw new TestException(); + }).when(DATA_TREE_MODIFICATION).merge(any(), any()); + snapshotBackedWriteTransaction.merge(YangInstanceIdentifier.empty(), NORMALIZED_NODE); } @Test(expected = IllegalArgumentException.class) public void deleteWithException() throws Exception { - doThrow(TestException.class).when(DATA_TREE_MODIFICATION).delete(any()); - snapshotBackedWriteTransaction.delete(YangInstanceIdentifier.EMPTY); + doAnswer(inv -> { + throw new TestException(); + }).when(DATA_TREE_MODIFICATION).delete(any()); + snapshotBackedWriteTransaction.delete(YangInstanceIdentifier.empty()); } private static final class TestException extends Exception {