private void assertDoesNotHaveTerminalPath(StateMachine.Builder stateMachineBuilder) {
        try {
            validate(stateMachineBuilder);
        } catch (IllegalArgumentException expected) {
            assertThat(expected.getMessage(), containsString("No path to a terminal state exists in the state machine"));
        }
    }
While the nested ChoiceTwo state only has cycles, it has a cycle out of the choice state to
a state that contains a path to a terminal. The validator doesn't validate that the path out actually
has a path to the terminal so there are some invalid state machines that will pass validation.
aws-java-sdk-stepfunctions/src/test/java/com/amazonaws/services/stepfunctions/builder/internal/validation/CycleTest.java