public void Assign_BugIsAlreadyAssignedAndSelfTransitionNotPermitted_TransitionNotRun() { //arrange _stateMachine = new StateMachine<BugState, TransitionActionStatus>("state machine name", _transitions, permitSelfTransition: false, initialState: new BugState.Open()); var bug = new BugStateful(_bug, _stateMachine); TransitionActionStatus transitionActionStatus; const string assigneeEmail1 = "*****@*****.**"; const string assigneeEmail2 = "*****@*****.**"; //act bug.Assign(assigneeEmail1, out transitionActionStatus); var exceptionCaught = false; try { bug.Assign(assigneeEmail2, out transitionActionStatus); } catch (SelfTransitionException) { exceptionCaught = true; } //assert Assert.That(exceptionCaught, Is.EqualTo(true)); Assert.That(bug.CurrentState, Is.TypeOf<BugState.Assigned>()); Assert.That(bug.Bug.AssigneeEmail, Is.EqualTo(assigneeEmail1)); Assert.That(transitionActionStatus, Is.EqualTo(TransitionActionStatus.NotRun)); }
public void Assign_BugIsAlreadyAssignedAndSelfTransitionNotPermitted_TransitionNotRun() { //arrange _stateMachine = new StateMachine <BugState, TransitionActionStatus>("state machine name", _transitions, permitSelfTransition: false, initialState: new BugState.Open()); var bug = new BugStateful(_bug, _stateMachine); TransitionActionStatus transitionActionStatus; const string assigneeEmail1 = "*****@*****.**"; const string assigneeEmail2 = "*****@*****.**"; //act bug.Assign(assigneeEmail1, out transitionActionStatus); var exceptionCaught = false; try { bug.Assign(assigneeEmail2, out transitionActionStatus); } catch (SelfTransitionException) { exceptionCaught = true; } //assert Assert.That(exceptionCaught, Is.EqualTo(true)); Assert.That(bug.CurrentState, Is.TypeOf <BugState.Assigned>()); Assert.That(bug.Bug.AssigneeEmail, Is.EqualTo(assigneeEmail1)); Assert.That(transitionActionStatus, Is.EqualTo(TransitionActionStatus.NotRun)); }
public void Assign_BugIsAlreadyAssigned_TransitionSuccess() { //arrange var bug = new BugStateful(_bug, _stateMachine); TransitionActionStatus transitionActionStatus; const string assigneeEmail1 = "*****@*****.**"; const string assigneeEmail2 = "*****@*****.**"; //act bug.Assign(assigneeEmail1, out transitionActionStatus); bug.Assign(assigneeEmail2, out transitionActionStatus); //assert Assert.That(bug.CurrentState, Is.TypeOf <BugState.Assigned>()); Assert.That(bug.Bug.AssigneeEmail, Is.EqualTo(assigneeEmail2)); Assert.That(transitionActionStatus, Is.EqualTo(TransitionActionStatus.Success)); }
public void AssignFollowedByDefer_BugIsOpen_TransitionsSucceed() { //arrange var bug = new BugStateful(_bug, _stateMachine); TransitionActionStatus transitionActionStatus; //act bug.Assign("*****@*****.**", out transitionActionStatus) .Defer(out transitionActionStatus); //assert Assert.That(bug.CurrentState, Is.TypeOf<BugState.Deferred>()); Assert.That(transitionActionStatus, Is.EqualTo(TransitionActionStatus.Success)); Assert.That(bug.Bug.AssigneeEmail, Is.EqualTo(string.Empty)); }
public void AssignFollowedByDefer_BugIsOpen_TransitionsSucceed() { //arrange var bug = new BugStateful(_bug, _stateMachine); TransitionActionStatus transitionActionStatus; //act bug.Assign("*****@*****.**", out transitionActionStatus) .Defer(out transitionActionStatus); //assert Assert.That(bug.CurrentState, Is.TypeOf <BugState.Deferred>()); Assert.That(transitionActionStatus, Is.EqualTo(TransitionActionStatus.Success)); Assert.That(bug.Bug.AssigneeEmail, Is.EqualTo(string.Empty)); }
public void Assign_BugIsAlreadyAssigned_TransitionSuccess() { //arrange var bug = new BugStateful(_bug, _stateMachine); TransitionActionStatus transitionActionStatus; const string assigneeEmail1 = "*****@*****.**"; const string assigneeEmail2 = "*****@*****.**"; //act bug.Assign(assigneeEmail1, out transitionActionStatus); bug.Assign(assigneeEmail2, out transitionActionStatus); //assert Assert.That(bug.CurrentState, Is.TypeOf<BugState.Assigned>()); Assert.That(bug.Bug.AssigneeEmail, Is.EqualTo(assigneeEmail2)); Assert.That(transitionActionStatus, Is.EqualTo(TransitionActionStatus.Success)); }