From 9e0bdae46fd80b2242c61149cf3d08987a9feedf Mon Sep 17 00:00:00 2001 From: Janne Valkealahti Date: Thu, 26 Dec 2019 12:41:24 +0000 Subject: [PATCH] Add Flux test for denied result - Relates #802 --- .../statemachine/ReactiveTests.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/spring-statemachine-core/src/test/java/org/springframework/statemachine/ReactiveTests.java b/spring-statemachine-core/src/test/java/org/springframework/statemachine/ReactiveTests.java index 3802e1a8..1726b22e 100644 --- a/spring-statemachine-core/src/test/java/org/springframework/statemachine/ReactiveTests.java +++ b/spring-statemachine-core/src/test/java/org/springframework/statemachine/ReactiveTests.java @@ -137,6 +137,27 @@ public class ReactiveTests extends AbstractStateMachineTests { .verify(); } + @SuppressWarnings("unchecked") + @Test + public void testFluxsSomeDenied() { + context.register(Config1.class); + context.refresh(); + assertThat(context.containsBean(StateMachineSystemConstants.DEFAULT_ID_STATEMACHINE)).isTrue(); + StateMachine machine = + context.getBean(StateMachineSystemConstants.DEFAULT_ID_STATEMACHINE, StateMachine.class); + assertThat(machine).isNotNull(); + verifyStart(machine); + assertThat(machine.getState().getIds()).containsExactlyInAnyOrder(TestStates.S1); + + StepVerifier.create(machine.sendEvents(asFlux(TestEvents.E1, TestEvents.E2, TestEvents.E3))) + .expectNextMatches(r -> r.getResultType() == ResultType.ACCEPTED) + .expectNextMatches(r -> r.getResultType() == ResultType.ACCEPTED) + .expectNextMatches(r -> r.getResultType() == ResultType.DENIED) + .expectComplete() + .verify(); + assertThat(machine.getState().getIds()).containsExactlyInAnyOrder(TestStates.S3); + } + @Test @SuppressWarnings("unchecked") public void testJoin() throws Exception {