+ @Test
+ public void canCommitWithOperationError() throws Exception {
+ RuntimeException operationError = new RuntimeException();
+ inMemoryDOMStoreThreePhaseCommitCohort =
+ new InMemoryDOMStoreThreePhaseCommitCohort(IN_MEMORY_DOM_DATA_STORE,
+ SnapshotBackedTransactions.newWriteTransaction(
+ "test", false, DATA_TREE_SNAPSHOT, TRANSACTION_READY_PROTOTYPE),
+ DATA_TREE_MODIFICATION,
+ operationError);
+ doNothing().when(IN_MEMORY_DOM_DATA_STORE).validate(any());
+ try {
+ inMemoryDOMStoreThreePhaseCommitCohort.canCommit().get();
+ fail("Expected exception");
+ } catch (ExecutionException e) {
+ assertTrue(e.getCause() == operationError);
+ }
+ }
+