public void AddTransitionWRequest_throws_ArgumentNullException_if_Condition_null() { var stateMachine = new StateMachine <Sale, SaleState, SaleEvent>(sale => sale.State, (sale, newState) => sale.State = newState); var sut = new StateConfiguration <Sale, SaleState, SaleEvent>(SaleState.ChangeDue, stateMachine); Assert.Throws <ArgumentNullException>(() => sut.AddTransition <string>(SaleEvent.AddItem, SaleState.Complete, condition: null)); }
public void AddTransitionWRequest_adds_transition() { var stateMachine = new StateMachine <Sale, SaleState, SaleEvent>(sale => sale.State, (sale, newState) => sale.State = newState); var sut = new StateConfiguration <Sale, SaleState, SaleEvent>(SaleState.ChangeDue, stateMachine); sut.AddTransition <string>(SaleEvent.Pay, SaleState.Complete, (sale, stringParam) => true); Assert.Single(sut.Transitions); }
public void AddTransitionWRequest_add_transition() { var stateMachine = new StateMachine <Sale, SaleState, SaleEvent>(sale => sale.State, (sale, newState) => sale.State = newState); var sut = new StateConfiguration <Sale, SaleState, SaleEvent>(SaleState.ChangeDue, stateMachine); sut.AddTransition <string>(SaleEvent.AddItem, SaleState.Complete, (sale, stringParam, cancelToken) => Task.FromResult(true)); Assert.Single(sut.Transitions); }