示例#1
0
        public void ThrowInvalidStateException_IfTriggerIsInvalidForState_And_IfThrowsInvalidStateExceptionIsTrue()
        {
            // Arrange
            var obj = new SampleStateful(true);

            // Assert
            Assert.Throws <InvalidStateException <SampleStates, SampleTriggers> >(() => obj.Approve());
        }
示例#2
0
        public void UpdateStatus()
        {
            // Arrange
            var obj = new SampleStateful(true);

            // Act
            obj.Submit();

            // Assert
            Assert.Equal(SampleStates.Submitted, obj.Status.CurrentState);
        }
示例#3
0
        public void ExecuteOnEntryAndOnExitActions()
        {
            // Arrange
            var obj = new SampleStateful(true);

            // Act
            obj.Submit();

            // Assert
            Assert.True(obj.EntryActionCalled);
            Assert.True(obj.ExitActionCalled);
        }
示例#4
0
        public void NotInvokeActionIfNoTransitionIsAvailable()
        {
            // Arrange
            var obj = new SampleStateful(false);

            obj.ShouldAllowTransition = false;
            var expectedSubmitCallCount = obj.SubmitCallCount;

            // Act
            obj.Submit();

            // Assert
            Assert.Equal(expectedSubmitCallCount, obj.SubmitCallCount);
        }
示例#5
0
        public void NotThrowException_IfTriggerIsInvalidForState_But_IfThrowsInvalidStateExceptionIsFalse()
        {
            // Arrange
            var obj          = new SampleStateful(false);
            var state        = obj.Status.CurrentState;
            var historyCount = obj.Status.TransitionHistory.Count;

            // Act
            obj.Approve();

            //Assert
            Assert.Equal(state, obj.Status.CurrentState);
            Assert.Equal(historyCount, obj.Status.TransitionHistory.Count);
        }
示例#6
0
        public void ConsiderTriggerGuardIfObjectIsCorrectType()
        {
            // Arrange
            var obj = new SampleStateful(false);

            obj.ShouldAllowTransition = false;
            var expectedCount = obj.Status.TransitionHistory.Count;

            // Act
            obj.Submit();

            // Assert
            Assert.Equal(expectedCount, obj.Status.TransitionHistory.Count);
            Assert.Equal(SampleStates.Draft, obj.Status.CurrentState);
        }