From 6659036a177dec1cc05535f2725cae447206f159 Mon Sep 17 00:00:00 2001 From: joost Date: Sat, 23 Mar 2024 22:37:16 +0100 Subject: [PATCH] first test working! --- AvansDevOps.Tests/AvansDevOps.Tests.csproj | 1 + .../ProjectTests/CreatesSprint.cs | 51 +++++++++++++++++++ AvansDevOps/Domain/Project.cs | 40 +++++++++++++-- 3 files changed, 88 insertions(+), 4 deletions(-) create mode 100644 AvansDevOps.Tests/ProjectTests/CreatesSprint.cs diff --git a/AvansDevOps.Tests/AvansDevOps.Tests.csproj b/AvansDevOps.Tests/AvansDevOps.Tests.csproj index ea8b444..6ac0817 100644 --- a/AvansDevOps.Tests/AvansDevOps.Tests.csproj +++ b/AvansDevOps.Tests/AvansDevOps.Tests.csproj @@ -11,6 +11,7 @@ + diff --git a/AvansDevOps.Tests/ProjectTests/CreatesSprint.cs b/AvansDevOps.Tests/ProjectTests/CreatesSprint.cs new file mode 100644 index 0000000..88b1e03 --- /dev/null +++ b/AvansDevOps.Tests/ProjectTests/CreatesSprint.cs @@ -0,0 +1,51 @@ +using AvansDevOps.Domain; +using AvansDevOps.Domain.People; +using FluentAssertions; + +namespace AvansDevOps.Tests.ProjectTests +{ + public class CreatesSprint + { + // mocks staan hier + public CreatesSprint() + { + // mocks initialiseren + } + + [Theory] + [InlineData(TypeOfSprints.PARTIALPRODUCTSPRINT)] + [InlineData(TypeOfSprints.RELEASESPRINT)] + internal void CreatesSprint_AddsASprintOfTheCorrectConcreteTypeToTheSpintsListInTheProject(TypeOfSprints typeOfSprint) + { + // Dirty code but can not be fixed :( + Type concreteTypeOfSprint = null; + if (typeOfSprint == TypeOfSprints.PARTIALPRODUCTSPRINT) + { + concreteTypeOfSprint = typeof(PartialProductSprint); + } + else if (typeOfSprint == TypeOfSprints.RELEASESPRINT) + { + concreteTypeOfSprint = typeof(ReleaseSprint); + } + + // Arrange + ProductOwner productOwner = new ProductOwner("Jan", "Jansen", "janjansen@avansdevops.nl", new List { NotificationPlatformPreferences.EMAIL }); + Project project = new Project(productOwner, new LinkedList()); + + + String name = "Sprint 1"; + DateTime startDate = DateTime.Now; + DateTime endDate = DateTime.Now.AddDays(14); + ScrumMaster scrumMaster = new ScrumMaster("Piet", "Pietersen", "pietpietersen@avansdevops.nl", new List { NotificationPlatformPreferences.EMAIL }); + LinkedList developers = new LinkedList(); + LinkedList testers = new LinkedList(); + LinkedList backlogitems = new LinkedList(); + + // Act + project.CreateSprint(typeOfSprint, name, startDate, endDate, scrumMaster, developers, testers, backlogitems); + + // Assert + project.GetMostRecentSprint().Should().BeOfType(concreteTypeOfSprint); + } + } +} diff --git a/AvansDevOps/Domain/Project.cs b/AvansDevOps/Domain/Project.cs index 444ec5a..f7a9f77 100644 --- a/AvansDevOps/Domain/Project.cs +++ b/AvansDevOps/Domain/Project.cs @@ -5,8 +5,8 @@ namespace AvansDevOps.Domain internal class Project { private ProductOwner productOwner; - private LinkedList projectBacklog = new LinkedList(); - private LinkedList sprints = new LinkedList(); + private readonly LinkedList projectBacklog = new LinkedList(); + private readonly LinkedList sprints = new LinkedList(); private readonly SprintFactory sprintFactory = new SprintFactory(); public Project(ProductOwner productOwner, LinkedList projectBacklog) @@ -30,9 +30,31 @@ internal ScrumMaster GetScrumMaster() return this.sprints.Last!.Value.GetScrumMaster(); } - public void CreateSprint(TypeOfSprints typeOfSprint, string name, DateTime startDate, DateTime endDate, ScrumMaster scrumMaster, LinkedList developers, LinkedList testers, LinkedList backlog) + public void CreateSprint(TypeOfSprints typeOfSprint, string name, DateTime startDate, DateTime endDate, ScrumMaster scrumMaster, LinkedList developers, LinkedList testers, LinkedList backlogtems) { - this.sprints.AddLast(this.sprintFactory.CreateSprint(this, typeOfSprint, name, startDate, endDate, scrumMaster, developers, testers, backlog)); + this.sprints.AddLast(this.sprintFactory.CreateSprint(this, typeOfSprint, name, startDate, endDate, scrumMaster, developers, testers, backlogtems)); + } + + public void AddBacklogItem(BacklogItem backlogItem) + { + this.projectBacklog.AddLast(backlogItem); + } + + public BacklogItem GetBacklogItem(string name) + { + foreach (BacklogItem backlogItem in projectBacklog) + { + if (backlogItem.GetName() == name) + { + return backlogItem; + } + } + return null; + } + + public LinkedList GetBacklogItems() + { + return this.projectBacklog; } public LinkedList GetDevelopers() @@ -62,6 +84,16 @@ public LinkedList GetTesters() return testers; } + public Sprint GetMostRecentSprint() + { + if (sprints.Last != null) + { + return sprints.Last.Value; + + } + return null; + } + } }