public void ThrowInvalidStateException_IfTriggerIsInvalidForState_And_IfThrowsInvalidStateExceptionIsTrue() { // Arrange var obj = new SampleStateful(true); // Assert Assert.Throws <InvalidStateException <SampleStates, SampleTriggers> >(() => obj.Approve()); }
public void UpdateStatus() { // Arrange var obj = new SampleStateful(true); // Act obj.Submit(); // Assert Assert.Equal(SampleStates.Submitted, obj.Status.CurrentState); }
public void ExecuteOnEntryAndOnExitActions() { // Arrange var obj = new SampleStateful(true); // Act obj.Submit(); // Assert Assert.True(obj.EntryActionCalled); Assert.True(obj.ExitActionCalled); }
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); }
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); }
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); }