public void IsSubstateOf_returns_False_if_in_given_state() { var stateMachine = new StateMachineAsync <Sale, SaleState, SaleEvent>(sale1 => sale1.State, (sale1, newState) => sale1.State = newState); var openState = new StateConfigurationAsync <Sale, SaleState, SaleEvent>(SaleState.Open, stateMachine); Assert.False(openState.IsSubstateOf(SaleState.Open)); Assert.False(openState.IsSubstateOf(SaleState.Complete)); }
public void IsSubstateOf_returns_True_if_in_given_state_is_subState() { var stateMachine = new StateMachineAsync <Sale, SaleState, SaleEvent>(sale1 => sale1.State, (sale1, newState) => sale1.State = newState); var openState = new StateConfigurationAsync <Sale, SaleState, SaleEvent>(SaleState.Open, stateMachine); var changeDueState = new StateConfigurationAsync <Sale, SaleState, SaleEvent>(SaleState.ChangeDue, stateMachine); changeDueState.AddSuperstate(openState); Assert.True(changeDueState.IsSubstateOf(SaleState.Open)); Assert.False(openState.IsSubstateOf(SaleState.ChangeDue)); }