public void Changing_To_Previous_State_Should_Not_Throw_Exception_In_ActiveState() { // Arrange Project project = new Project("Test Project", new Person("Bas", ERole.Lead)); SprintFactory factory = new SprintFactory(); Person p1 = new Person("Tom", ERole.Developer); Person p2 = new Person("Jan Peter", ERole.Tester); ISprint sprint = factory.MakeReleaseSprint("Sprint 1", DateTime.Now, DateTime.Now.AddDays(14), project, p1, new List <Person>() { p2 }); project.AddSprint(sprint); sprint.GetState().ToNextState(); // Act project.GetSprints().First().GetState().ToPreviousState(); // Assert Assert.Equal("InitializedState", project.GetSprints().First().GetState().GetType().Name); }
public void Set_Review_Should_Throw_SecurityException_In_FinishedState_When_Added_By_Someone_Else_But_ScrumMaster() { // Arrange Project project = new Project("Test Project", new Person("Bas", ERole.Lead)); SprintFactory factory = new SprintFactory(); Person p1 = new Person("Tom", ERole.Developer); Person p2 = new Person("Jan Peter", ERole.Tester); ISprint sprint = factory.MakeReleaseSprint("Sprint 1", DateTime.Now, DateTime.Now.AddDays(14), project, p1, new List <Person>() { p2 }); project.AddSprint(sprint); sprint.GetState().ToNextState(); sprint.GetState().ToNextState(); Review review = new Review(sprint, p2, "Good work guys!"); // Act // Assert Assert.Throws <SecurityException>(() => project.GetSprints().First().GetState().SetReview(review)); }
public void Adding_Developer_Should_Not_Throw_Exception_In_ActiveState() { // Arrange Project project = new Project("Test Project", new Person("Bas", ERole.Lead)); SprintFactory factory = new SprintFactory(); Person p1 = new Person("Tom", ERole.Developer); Person p2 = new Person("Jan Peter", ERole.Tester); Person p3 = new Person("Dick Bruna", ERole.Developer); ISprint sprint = factory.MakeReleaseSprint("Sprint 1", DateTime.Parse("2010-10-10T00:00:00Z"), DateTime.Parse("2010-10-10T00:00:00Z").AddDays(14), project, p1, new List <Person>() { p2 }); project.AddSprint(sprint); sprint.GetState().ToNextState(); // Act sprint.GetState().AddDeveloper(p3); // Assert Assert.Contains(p3, sprint.GetDevelopers()); }
public void Notification_Todo_State_Update() { // Arrange Project project = new Project("Test Project", new Person("Bas", ERole.Lead)); SprintFactory factory = new SprintFactory(); ChannelFactory channel = new ChannelFactory(); Person p1 = new Person("Tom", ERole.Developer); Person p2 = new Person("Jan Roos", ERole.Developer); p1.AddChannel(channel.CreateSlackChannel("@tom")); ISprint sprint = factory.MakeReleaseSprint("Sprint 1", DateTime.Now, DateTime.Now.AddDays(14), project, p1, new List <Person>() { p2 }); project.AddSprint(sprint); var backlog = new Backlog(project); var backlogItem = new BacklogItem("User can login into the platform", "Foo", p2, 3, backlog); backlogItem.AssignPerson(p2); backlog.AddBacklogItem(backlogItem); sprint.AddToSprintBacklog(backlogItem); project.AddBacklog(backlog); var task1 = new Task("Bar", p1); backlogItem.GetState().AddTask(task1); var backlogItemObserver = new BacklogItemObserver(); // Act backlogItem.Register(backlogItemObserver); backlogItem.GetState().NextState(); // Backlog is in DoingState, set tasks backlogItem.GetTasks().First().NextState(); backlogItem.GetTasks().First().NextState(); task1.NextState(); task1.NextState(); backlogItem.GetState().NextState(); backlogItem.GetState().NextState(); // Backlog is in TestingState backlogItem.GetState().NextState(); // Assert Assert.NotEmpty(backlogItem.GetObservers()); }
public void Changing_SprintName_Should_Throw_NotSupportedException_In_ActiveState() { // Arrange Project project = new Project("Test Project", new Person("Bas", ERole.Lead)); SprintFactory factory = new SprintFactory(); Person p1 = new Person("Tom", ERole.Developer); Person p2 = new Person("Jan Peter", ERole.Tester); ISprint sprint = factory.MakeReleaseSprint("Sprint 1", DateTime.Now, DateTime.Now.AddDays(14), project, p1, new List <Person>() { p2 }); project.AddSprint(sprint); sprint.GetState().ToNextState(); // Act // Assert Assert.Throws <NotSupportedException>(() => project.GetSprints().First().GetState().SetName("Foo")); }
public void Backlog_Can_Register_Multiple_Observers() { // Arrange Project project = new Project("Test Project", new Person("Bas", ERole.Lead)); SprintFactory factory = new SprintFactory(); Person p1 = new Person("Tom", ERole.Developer); Person p2 = new Person("Jan Roos", ERole.Developer); ISprint sprint = factory.MakeReleaseSprint("Sprint 1", DateTime.Now, DateTime.Now.AddDays(14), project, p1, new List <Person>() { p2 }); project.AddSprint(sprint); var backlog = new Backlog(project); var backlogItem = new BacklogItem("User can login into the platform", "Foo", p2, 3, backlog); backlogItem.AssignPerson(p2); backlog.AddBacklogItem(backlogItem); sprint.AddToSprintBacklog(backlogItem); project.AddBacklog(backlog); var task1 = new Task("Bar", p1); backlogItem.GetState().AddTask(task1); var backlogItemObserver = new BacklogItemObserver(); // Act // TODO: Add sprint observer backlogItem.Register(backlogItemObserver); // Assert Assert.Single(backlogItem.GetObservers()); }
public void Set_Review_Should_Throw_NotSupportedException_In_InitializedState() { // Arrange Project project = new Project("Test Project", new Person("Bas", ERole.Lead)); SprintFactory factory = new SprintFactory(); Person p1 = new Person("Tom", ERole.Developer); Person p2 = new Person("Jan Peter", ERole.Tester); ISprint sprint = factory.MakeReleaseSprint("Sprint 1", DateTime.Now, DateTime.Now.AddDays(14), project, p1, new List <Person>() { p2 }); project.AddSprint(sprint); Review review = new Review(sprint, p1, "No good"); // Act // Assert Assert.Throws <NotSupportedException>(() => project.GetSprints().First().GetState().SetReview(review)); }
public void Changing_EndDate_Should_Not_Throw_Exception_In_InitializedState() { // Arrange Project project = new Project("Test Project", new Person("Bas", ERole.Lead)); SprintFactory factory = new SprintFactory(); Person p1 = new Person("Tom", ERole.Developer); Person p2 = new Person("Jan Peter", ERole.Tester); ISprint sprint = factory.MakeReleaseSprint("Sprint 1", DateTime.Parse("2010-10-10T00:00:00Z"), DateTime.Parse("2010-10-10T00:00:00Z").AddDays(14), project, p1, new List <Person>() { p2 }); project.AddSprint(sprint); // Act sprint.GetState().SetEndDate(DateTime.Parse("2010-10-10T00:00:00Z").AddDays(7)); // Assert Assert.Equal(DateTime.Parse("2010-10-17T00:00:00Z"), project.GetSprints().First().GetEndDate()); }
public void DevelopmentPipeline_Should_Fire_When_ReleaseSprint_Reaches_FinishedState() { // Arrange Project project = new Project("Test Project", new Person("Bas", ERole.Lead)); SprintFactory factory = new SprintFactory(); Person p1 = new Person("Tom", ERole.Developer); Person p2 = new Person("Jan Peter", ERole.Tester); ISprint sprint = factory.MakeReleaseSprint("Sprint 1", DateTime.Now, DateTime.Now.AddDays(14), project, p1, new List <Person>() { p2 }); project.AddSprint(sprint); sprint.GetState().ToNextState(); sprint.GetState().ToNextState(); // Act sprint.GetState().StartStateAction(); // Assert }
public void Generating_A_Report_Should_Not_Throw_Exception() { // Arrange Project project = new Project("Test Project", new Person("Bas", ERole.Lead)); SprintFactory factory = new SprintFactory(); Person p1 = new Person("Tom", ERole.Developer); Person p2 = new Person("Jan Peter", ERole.Tester); ISprint sprint = factory.MakeReviewSprint("Sprint 1", DateTime.Now, DateTime.Now.AddDays(14), project, p1, new List <Person>() { p2 }); ISprint sprint2 = factory.MakeReleaseSprint("Sprint 2", DateTime.Now, DateTime.Now.AddDays(14), project, p1, new List <Person>() { p2 }); project.AddSprint(sprint); project.AddSprint(sprint2); // Act DateTime now = DateTime.Now; Report sprint1GeneratedAvansReport = sprint.GenerateReport(EReportBranding.Avans, new List <string>() { "Burndown chart: foo", "Velocity: 21" }, "v1.0", now, EReportFormat.PDF); Report sprint1GeneratedAvansPlusReport = sprint.GenerateReport(EReportBranding.AvansPlus, new List <string>() { "Burndown chart: bar", "Velocity: 13" }, "v2.0", now, EReportFormat.PNG); Report sprint2GeneratedAvansReport = sprint.GenerateReport(EReportBranding.Avans, new List <string>() { "Burndown chart: foo", "Velocity: 21" }, "v1.0", now, EReportFormat.PDF); Report sprint2GeneratedAvansPlusReport = sprint.GenerateReport(EReportBranding.AvansPlus, new List <string>() { "Burndown chart: bar", "Velocity: 13" }, "v2.0", now, EReportFormat.PNG); // Assert Assert.Equal(now, sprint1GeneratedAvansReport.Header.Date); Assert.Equal("Avans", sprint1GeneratedAvansReport.Header.CompanyName); Assert.Equal(new List <string>() { "Burndown chart: foo", "Velocity: 21" }, sprint1GeneratedAvansReport.Contents); Assert.Equal("v1.0", sprint1GeneratedAvansReport.Header.ReportVersion); Assert.Equal(EReportFormat.PDF, sprint1GeneratedAvansReport.Format); Assert.Equal(now, sprint1GeneratedAvansPlusReport.Header.Date); Assert.Equal("Avans+", sprint1GeneratedAvansPlusReport.Header.CompanyName); Assert.Equal(new List <string>() { "Burndown chart: bar", "Velocity: 13" }, sprint2GeneratedAvansPlusReport.Contents); Assert.Equal("v2.0", sprint1GeneratedAvansPlusReport.Header.ReportVersion); Assert.Equal(EReportFormat.PNG, sprint1GeneratedAvansPlusReport.Format); Assert.Equal(now, sprint2GeneratedAvansReport.Header.Date); Assert.Equal("Avans", sprint2GeneratedAvansReport.Header.CompanyName); Assert.Equal(new List <string>() { "Burndown chart: foo", "Velocity: 21" }, sprint2GeneratedAvansReport.Contents); Assert.Equal("v1.0", sprint2GeneratedAvansReport.Header.ReportVersion); Assert.Equal(EReportFormat.PDF, sprint1GeneratedAvansReport.Format); Assert.Equal(now, sprint2GeneratedAvansPlusReport.Header.Date); Assert.Equal("Avans+", sprint2GeneratedAvansPlusReport.Header.CompanyName); Assert.Equal(new List <string>() { "Burndown chart: bar", "Velocity: 13" }, sprint2GeneratedAvansPlusReport.Contents); Assert.Equal("v2.0", sprint2GeneratedAvansPlusReport.Header.ReportVersion); Assert.Equal(EReportFormat.PNG, sprint2GeneratedAvansPlusReport.Format); }