private static Finite.StateMachine <State> CreateStateMachine(State state) { var allStates = new Finite.State <State>[] { new PersonalDetailsStep(), new EmailVerificationStep(), new FinancialDetailsStep(), new RegistrationCompleted() }; var machine = new Finite.StateMachine <State>( new Finite.StateProviders.ManualStateProvider <State>(allStates), state); machine.ResetTo <PersonalDetailsStep>(); return(machine); }
private static void TestTransition <TStep>(Action <State> mutator, State state, Finite.StateMachine <State> machine) where TStep : Finite.State <State> { Action emailVerificationTransition = () => machine.TransitionTo <TStep>(); emailVerificationTransition.ShouldThrow <Finite.InvalidTransitionException>(); mutator(state); emailVerificationTransition.ShouldNotThrow(); Console.WriteLine(state); Console.WriteLine(GetPage(machine)); }