private static void BugTest() { // with Stateless var bug = new Bug("Incorrect stock count"); bug.Assign("Joe"); bug.Defer(); bug.Assign("Harry"); bug.Assign("Fred"); bug.Close(); Console.WriteLine(); Console.WriteLine("State machine:"); Console.WriteLine(bug.ToDotGraph()); // with state pattern Context c = new Context(); // Issue requests, which changes state c.Assign("Joe"); c.Defer(); c.Assign("Harry"); c.Assign("Fred"); c.Close(); }
/// <summary> /// Execute bug tracker example /// </summary> private static void ExecuteBugTrackerExample() { Console.WriteLine("**** Bug tracker state machine example ****"); Console.WriteLine(); var bug = new Bug("First bug"); bug.Assign("Niko"); Console.WriteLine(); bug.Assign("Ivan"); Console.WriteLine(); bug.Defer(); Console.WriteLine(); bug.Assign("Harry"); Console.WriteLine(); bug.Assign("Fred"); Console.WriteLine(); bug.Assign("Arnold"); Console.WriteLine(); bug.Close(); }
public void Bug_WhenClosingNewBug_ThenExceptionIsThrown() { //Given Bug bug = new Bug(); //When Action action = () => bug.Close("reason"); //Then Should.Throw <DomainException>(action); }
private static Bug CreateClosedBug() { var bug = new Bug(); bug.Triage(Severity.High, Priority.High); bug.AssignUser(new User("testuser", UserRole.Dev)); bug.Resolve(); bug.Close("reason"); return(bug); }
public void Bug_WhenClosing_ThenNoUserIsAssigned() { //Given var bug = new Bug(); bug.Triage(Severity.High, Priority.High); bug.AssignUser(new User("testuser", UserRole.Dev)); var mondayDate = new DateTime(2017, 10, 2); TimeProvider.Current = new TestTimeProvider(mondayDate); bug.Resolve(); //When bug.Close("reason"); //Then bug.AssignedUser.ShouldBeNull(); }