diff --git a/spring-statemachine-core/src/main/java/org/springframework/statemachine/config/configurers/DefaultStateConfigurer.java b/spring-statemachine-core/src/main/java/org/springframework/statemachine/config/configurers/DefaultStateConfigurer.java index 2bf64f03..04e7e773 100644 --- a/spring-statemachine-core/src/main/java/org/springframework/statemachine/config/configurers/DefaultStateConfigurer.java +++ b/spring-statemachine-core/src/main/java/org/springframework/statemachine/config/configurers/DefaultStateConfigurer.java @@ -171,6 +171,7 @@ public class DefaultStateConfigurer @Override public StateConfigurer choice(S choice) { + state(choice); choices.add(choice); return this; } diff --git a/spring-statemachine-core/src/test/java/org/springframework/statemachine/config/configurers/DefaultStateConfigurerTests.java b/spring-statemachine-core/src/test/java/org/springframework/statemachine/config/configurers/DefaultStateConfigurerTests.java index c89953a4..d3ab4799 100644 --- a/spring-statemachine-core/src/test/java/org/springframework/statemachine/config/configurers/DefaultStateConfigurerTests.java +++ b/spring-statemachine-core/src/test/java/org/springframework/statemachine/config/configurers/DefaultStateConfigurerTests.java @@ -31,6 +31,7 @@ import org.springframework.statemachine.AbstractStateMachineTests.TestStates; import org.springframework.statemachine.action.Action; import org.springframework.statemachine.config.StateData; import org.springframework.statemachine.config.builders.StateMachineStateBuilder; +import org.springframework.statemachine.state.PseudoStateKind; public class DefaultStateConfigurerTests { @@ -140,6 +141,18 @@ public class DefaultStateConfigurerTests { assertThat(builder.data.iterator().next().getState(), is(TestStates.SF)); } + @Test + public void testChoiceStateNoState() throws Exception { + DefaultStateConfigurer configurer = new DefaultStateConfigurer(); + TestStateMachineStateBuilder builder = new TestStateMachineStateBuilder(); + configurer.choice(TestStates.S1); + configurer.configure(builder); + assertThat(builder.data, notNullValue()); + assertThat(builder.data.size(), is(1)); + assertThat(builder.data.iterator().next().getState(), is(TestStates.S1)); + assertThat(builder.data.iterator().next().getPseudoStateKind(), is(PseudoStateKind.CHOICE)); + } + private static class TestStateMachineStateBuilder extends StateMachineStateBuilder { Collection> data;