Add tests for cancellation of transactional streams
See gh-23864 Closes gh-23873
This commit is contained in:
@@ -61,6 +61,34 @@ public class TransactionalOperatorTests {
|
||||
assertThat(cancelled).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void cancellationPropagatedToMono() {
|
||||
AtomicBoolean cancelled = new AtomicBoolean();
|
||||
TransactionalOperator operator = TransactionalOperator.create(tm, new DefaultTransactionDefinition());
|
||||
Mono.create(sink -> sink.onCancel(() -> cancelled.set(true))).as(operator::transactional)
|
||||
.as(StepVerifier::create)
|
||||
.thenAwait()
|
||||
.thenCancel()
|
||||
.verify();
|
||||
assertThat(tm.commit).isTrue();
|
||||
assertThat(tm.rollback).isFalse();
|
||||
assertThat(cancelled).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void cancellationPropagatedToFlux() {
|
||||
AtomicBoolean cancelled = new AtomicBoolean();
|
||||
TransactionalOperator operator = TransactionalOperator.create(tm, new DefaultTransactionDefinition());
|
||||
Flux.create(sink -> sink.onCancel(() -> cancelled.set(true))).as(operator::transactional)
|
||||
.as(StepVerifier::create)
|
||||
.thenAwait()
|
||||
.thenCancel()
|
||||
.verify();
|
||||
assertThat(tm.commit).isTrue();
|
||||
assertThat(tm.rollback).isFalse();
|
||||
assertThat(cancelled).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void rollbackWithMono() {
|
||||
TransactionalOperator operator = TransactionalOperator.create(tm, new DefaultTransactionDefinition());
|
||||
|
||||
Reference in New Issue
Block a user