*/
package org.opendaylight.mdsal.dom.broker;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertThrows;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.doThrow;
-import com.google.common.util.concurrent.FluentFuture;
-import java.util.Collections;
+import com.google.common.util.concurrent.ListenableFuture;
+import java.util.Map;
import java.util.concurrent.ExecutionException;
-import org.junit.Before;
import org.junit.Test;
+import org.junit.runner.RunWith;
import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.opendaylight.mdsal.common.api.CommitInfo;
+import org.mockito.junit.MockitoJUnitRunner;
import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.mdsal.common.api.TransactionCommitFailedException;
import org.opendaylight.mdsal.dom.spi.store.DOMStoreWriteTransaction;
+@RunWith(MockitoJUnitRunner.StrictStubs.class)
public class DOMForwardedWriteTransactionTest {
-
@Mock
private AbstractDOMForwardedTransactionFactory<?> abstractDOMForwardedTransactionFactory;
@Mock
private DOMStoreWriteTransaction domStoreWriteTransaction;
- @Before
- public void setup() {
- MockitoAnnotations.initMocks(this);
- }
-
@Test
public void readyRuntimeExceptionAndCancel() throws InterruptedException {
- RuntimeException thrown = new RuntimeException();
+ final RuntimeException thrown = new RuntimeException();
doThrow(thrown).when(domStoreWriteTransaction).ready();
- DOMForwardedWriteTransaction<DOMStoreWriteTransaction> domForwardedWriteTransaction =
- new DOMForwardedWriteTransaction<>(
- new Object(),
- Collections.singletonMap(LogicalDatastoreType.OPERATIONAL, domStoreWriteTransaction),
- abstractDOMForwardedTransactionFactory);
- FluentFuture<? extends CommitInfo> submitFuture = domForwardedWriteTransaction.commit();
- try {
- submitFuture.get();
- fail("TransactionCommitFailedException expected");
- } catch (ExecutionException e) {
- assertTrue(e.getCause() instanceof TransactionCommitFailedException);
- assertTrue(e.getCause().getCause() == thrown);
- domForwardedWriteTransaction.cancel();
- }
+ final DOMForwardedWriteTransaction<DOMStoreWriteTransaction> domForwardedWriteTransaction =
+ new DOMForwardedWriteTransaction<>(new Object(),
+ Map.of(LogicalDatastoreType.OPERATIONAL, domStoreWriteTransaction),
+ abstractDOMForwardedTransactionFactory);
+ ListenableFuture<?> submitFuture = domForwardedWriteTransaction.commit();
+
+ ExecutionException ex = assertThrows(ExecutionException.class, submitFuture::get);
+ Throwable cause = ex.getCause();
+ assertThat(cause, instanceOf(TransactionCommitFailedException.class));
+ assertSame(thrown, cause.getCause());
+ domForwardedWriteTransaction.cancel();
}
@Test
DOMForwardedWriteTransaction<DOMStoreWriteTransaction> domForwardedWriteTransaction =
new DOMForwardedWriteTransaction<>(
new Object(),
- Collections.singletonMap(LogicalDatastoreType.OPERATIONAL, domStoreWriteTransaction),
+ Map.of(LogicalDatastoreType.OPERATIONAL, domStoreWriteTransaction),
abstractDOMForwardedTransactionFactory);
- FluentFuture<? extends CommitInfo> submitFuture = domForwardedWriteTransaction.commit();
- try {
- submitFuture.get();
- fail("TransactionCommitFailedException expected");
- } catch (ExecutionException e) {
- assertTrue(e.getCause() instanceof TransactionCommitFailedException);
- assertTrue(e.getCause().getCause() == thrown);
- domForwardedWriteTransaction.cancel();
- }
+ ListenableFuture<?> submitFuture = domForwardedWriteTransaction.commit();
+ ExecutionException ex = assertThrows(ExecutionException.class, submitFuture::get);
+ Throwable cause = ex.getCause();
+ assertThat(cause, instanceOf(TransactionCommitFailedException.class));
+ assertSame(thrown, cause.getCause());
+ domForwardedWriteTransaction.cancel();
}
}