- try {
- submitFuture.get();
- Assert.fail("TransactionCommitFailedException expected");
- } catch (ExecutionException e) {
- assertTrue(e.getCause() instanceof TransactionCommitFailedException);
- assertTrue(e.getCause().getCause() == thrown);
- abstractDOMBrokerWriteTransactionTestImpl.cancel();
- }
+ final var cause = assertThrows(ExecutionException.class, submitFuture::get).getCause();
+ assertTrue(cause instanceof TransactionCommitFailedException);
+ assertSame(thrown, cause.getCause());
+ abstractDOMBrokerWriteTransactionTestImpl.cancel();
+ }
+
+ @Test
+ public void getSubtransactionStoreMismatch() {
+ final var testTx = new AbstractDOMBrokerWriteTransactionTestImpl(
+ Map.of(CONFIGURATION, txFactory, OPERATIONAL, txFactory));
+
+ assertEquals(domStoreWriteTransaction, testTx.getSubtransaction(CONFIGURATION));
+
+ final var exception = assertThrows(TransactionDatastoreMismatchException.class,
+ () -> testTx.getSubtransaction(OPERATIONAL));
+ assertEquals(CONFIGURATION, exception.expected());
+ assertEquals(OPERATIONAL, exception.encountered());
+ }
+
+ @Test
+ public void getSubtransactionStoreUndefined() {
+ final var testTx = new AbstractDOMBrokerWriteTransactionTestImpl(Map.of(OPERATIONAL, txFactory));
+
+ final var exception = assertThrows(IllegalArgumentException.class,
+ () -> testTx.getSubtransaction(CONFIGURATION));
+ assertEquals("CONFIGURATION is not supported", exception.getMessage());