Fix doCleanupAfterCompletion invocation

doCleanupAfterCompletion gets now subscribed to when processing
cleanup after a new transaction.
This commit is contained in:
Mark Paluch
2019-05-03 14:52:55 +02:00
committed by Juergen Hoeller
parent ec8689d1fc
commit 9cff07ce35
3 changed files with 26 additions and 3 deletions

View File

@@ -44,6 +44,8 @@ class ReactiveTestTransactionManager extends AbstractReactiveTransactionManager
protected boolean rollbackOnly = false;
protected boolean cleanup = false;
ReactiveTestTransactionManager(boolean existingTransaction, boolean canCreateTransaction) {
this.existingTransaction = existingTransaction;
@@ -96,4 +98,8 @@ class ReactiveTestTransactionManager extends AbstractReactiveTransactionManager
return Mono.fromRunnable(() -> this.rollbackOnly = true);
}
@Override
protected Mono<Void> doCleanupAfterCompletion(TransactionSynchronizationManager synchronizationManager, Object transaction) {
return Mono.fromRunnable(() -> this.cleanup = true);
}
}

View File

@@ -95,6 +95,7 @@ public class ReactiveTransactionSupportTests {
assertHasCommitted(tm);
assertHasNoRollback(tm);
assertHasNotSetRollbackOnly(tm);
assertHasCleanedUp(tm);
}
@Test
@@ -108,6 +109,7 @@ public class ReactiveTransactionSupportTests {
assertHasNotCommitted(tm);
assertHasRolledBack(tm);
assertHasNotSetRollbackOnly(tm);
assertHasCleanedUp(tm);
}
@Test
@@ -122,6 +124,7 @@ public class ReactiveTransactionSupportTests {
assertHasNotCommitted(tm);
assertHasRolledBack(tm);
assertHasNotSetRollbackOnly(tm);
assertHasCleanedUp(tm);
}
@Test
@@ -135,6 +138,7 @@ public class ReactiveTransactionSupportTests {
assertHasNotCommitted(tm);
assertHasNoRollback(tm);
assertHasNotSetRollbackOnly(tm);
assertHasNotCleanedUp(tm);
}
@Test
@@ -148,6 +152,7 @@ public class ReactiveTransactionSupportTests {
assertHasNotCommitted(tm);
assertHasNoRollback(tm);
assertHasSetRollbackOnly(tm);
assertHasNotCleanedUp(tm);
}
@Test
@@ -161,6 +166,7 @@ public class ReactiveTransactionSupportTests {
assertHasNotCommitted(tm);
assertHasNoRollback(tm);
assertHasSetRollbackOnly(tm);
assertHasNotCleanedUp(tm);
}
@Test
@@ -177,6 +183,7 @@ public class ReactiveTransactionSupportTests {
assertHasCommitted(tm);
assertHasNoRollback(tm);
assertHasNotSetRollbackOnly(tm);
assertHasCleanedUp(tm);
}
@Test
@@ -194,6 +201,7 @@ public class ReactiveTransactionSupportTests {
assertHasNotCommitted(tm);
assertHasRolledBack(tm);
assertHasNotSetRollbackOnly(tm);
assertHasCleanedUp(tm);
}
private void assertHasBegan(ReactiveTestTransactionManager actual) {
@@ -228,4 +236,12 @@ assertFalse("Expected to not call <ReactiveTransactionManager.rollback()> but wa
assertFalse("Expected to not call <ReactiveTransactionManager.setRollbackOnly()> but was <setRollbackOnly()> was called", actual.rollbackOnly);
}
private void assertHasCleanedUp(ReactiveTestTransactionManager actual) {
assertTrue("Expected <ReactiveTransactionManager.doCleanupAfterCompletion()> but was <doCleanupAfterCompletion()> was not invoked", actual.cleanup);
}
private void assertHasNotCleanedUp(ReactiveTestTransactionManager actual) {
assertFalse("Expected to not call <ReactiveTransactionManager.doCleanupAfterCompletion()> but was <doCleanupAfterCompletion()> was called", actual.cleanup);
}
}