Example #1
0
        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);
        }
Example #2
0
        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));
        }