Browse Source

Add tests for cancellation of transactional streams

See gh-23864

Closes gh-23873
pull/23875/head
Mark Paluch 5 years ago committed by Sam Brannen
parent
commit
0d8aa854e8
  1. 28
      spring-tx/src/test/java/org/springframework/transaction/reactive/TransactionalOperatorTests.java

28
spring-tx/src/test/java/org/springframework/transaction/reactive/TransactionalOperatorTests.java

@ -61,6 +61,34 @@ public class TransactionalOperatorTests { @@ -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());

Loading…
Cancel
Save