public LambdaStateChangedHandlerTests()
        {
            _config = new MachineConfiguration<TestArgs>();

            var args = new TestArgs();
            var stateProvider = new ScanningStateProvider<TestArgs>();

            _machine = new StateMachine<TestArgs>(_config, stateProvider, args);
        }
Ejemplo n.º 2
0
        public static StateMachine<CreditRequest> Create(CreditRequest request)
        {
            var provider = new ScanningStateProvider<CreditRequest>();
            var config = new MachineConfiguration<CreditRequest>();
            config.OnStateChange(
                reset: (sender, args) => args.Switches.State = args.Next.GetType(),
                enter: (sender, args) => args.Switches.State = args.Next.GetType()
            );

            var machine = new StateMachine<CreditRequest>(config, provider, request);
            machine.ResetTo(request.State);

            return machine;
        }
Ejemplo n.º 3
0
        public void When_finding_custom_states()
        {
            var scanner = new ScanningStateProvider<CreditRequest>();
            var provider = new MappingStateProvider(scanner);

            var config = new MachineConfiguration<CreditRequest>();
            config.OnStateChange(
                reset: (sender, args) => args.Switches.Progress = ((CustomState<CreditRequest>)args.Next).Type,
                enter: (sender, args) => args.Switches.Progress = ((CustomState<CreditRequest>)args.Next).Type
            );

            var request = LoadFromDatabase();

            var machine = new StateMachine<CreditRequest>(provider, request);
            machine.ResetTo(provider.StateFrom(request.Progress).GetType());

            machine.CurrentState.ShouldBeOfType<Approved>();
        }