public void AddSuperState_throws_exception_if_existing_different_sub_state() { var superState1 = new StateDetails <SaleState, SaleEvent>(SaleState.ChangeDue); var superState2 = new StateDetails <SaleState, SaleEvent>(SaleState.Complete); var sut = new StateDetails <SaleState, SaleEvent>(SaleState.Open); sut.AddSuperState(superState1); Assert.Throws <InvalidOperationException>(() => sut.AddSuperState(superState2)); }
public void AddSuperState_adds_super_state() { var superState = new StateDetails <SaleState, SaleEvent>(SaleState.ChangeDue); var sut = new StateDetails <SaleState, SaleEvent>(SaleState.Open); sut.AddSuperState(superState); Assert.True(sut.HasSuperState); Assert.False(superState.HasSuperState); Assert.True(superState.IsSuperState); Assert.False(sut.IsSuperState); Assert.Same(superState, sut.SuperState); Assert.Contains(sut, superState.SubStates); }