Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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);
        }