public void ATaskWithChildrenTasksHasProgressBasedOnItsChildren() { DateTime today = DateTime.Today; DateTime monday = CalulateNext(today, DayOfWeek.Monday); DateTime tuesday = CalulateNext(monday, DayOfWeek.Tuesday); DateTime wednesday = CalulateNext(monday, DayOfWeek.Wednesday); DateTime thursday = CalulateNext(monday, DayOfWeek.Thursday); DateTime friday = CalulateNext(monday, DayOfWeek.Friday); Mock <IProjectCalendar> calendarMock = new Mock <IProjectCalendar>(); calendarMock.Setup(x => x.GetWorkingHours(monday)).Returns(8); calendarMock.Setup(x => x.GetWorkingHours(tuesday)).Returns(8); calendarMock.Setup(x => x.GetWorkingHours(wednesday)).Returns(8); calendarMock.Setup(x => x.GetWorkingHours(thursday)).Returns(8); calendarMock.Setup(x => x.GetWorkingHours(friday)).Returns(8); Mock <IProjectCalendarFactory> calendarFactoryMock = new Mock <IProjectCalendarFactory>(); calendarFactoryMock.Setup(x => x.CreateDefaultWorkingCalendar()).Returns(calendarMock.Object); ProjectFactory projectFactory = new ProjectFactory(calendarFactoryMock.Object); Project project = projectFactory.CreateProject(VALID_PROJECT_NAME); ProjectTask parentTask = project.AddTask(VALID_PROJECTTASK_NAME); ProjectTask childTask1 = parentTask.AddTask(VALID_PROJECTTASK_NAME); ProjectTask childTask2 = parentTask.AddTask(VALID_PROJECTTASK_NAME); ProjectTask childTask3 = parentTask.AddTask(VALID_PROJECTTASK_NAME); // 40 hours effort, 10% progress childTask1.ExpectedStartDate = monday; childTask1.ExpectedFinishDate = friday; childTask1.SetProgress(10); // 40 hours effort, 25% progress childTask2.ExpectedStartDate = monday; childTask2.ExpectedFinishDate = friday; childTask2.SetProgress(25); // 24 hours effort, 50% progress childTask3.ExpectedStartDate = monday; childTask3.ExpectedFinishDate = wednesday; childTask3.SetProgress(50); int progress = parentTask.CalculateProgress(); Assert.That(progress, Is.EqualTo(25)); }
public void ATaskWithChildTaskHasExpectedEffortOfItsChildren() { DateTime today = DateTime.Today; DateTime monday = CalulateNext(today, DayOfWeek.Monday); DateTime tuesday = CalulateNext(monday, DayOfWeek.Tuesday); DateTime wednesday = CalulateNext(monday, DayOfWeek.Wednesday); DateTime thursday = CalulateNext(monday, DayOfWeek.Thursday); DateTime friday = CalulateNext(monday, DayOfWeek.Friday); Mock <IProjectCalendar> calendarMock = new Mock <IProjectCalendar>(); calendarMock.Setup(x => x.GetWorkingHours(monday)).Returns(8); calendarMock.Setup(x => x.GetWorkingHours(tuesday)).Returns(8); calendarMock.Setup(x => x.GetWorkingHours(wednesday)).Returns(8); calendarMock.Setup(x => x.GetWorkingHours(thursday)).Returns(8); calendarMock.Setup(x => x.GetWorkingHours(friday)).Returns(8); Mock <IProjectCalendarFactory> calendarFactoryMock = new Mock <IProjectCalendarFactory>(); calendarFactoryMock.Setup(x => x.CreateDefaultWorkingCalendar()).Returns(calendarMock.Object); ProjectFactory projectFactory = new ProjectFactory(calendarFactoryMock.Object); Project project = projectFactory.CreateProject(VALID_PROJECT_NAME); ProjectTask parentTask = project.AddTask(VALID_PROJECTTASK_NAME); ProjectTask childTask1 = parentTask.AddTask(VALID_PROJECTTASK_NAME); ProjectTask childTask2 = parentTask.AddTask(VALID_PROJECTTASK_NAME); childTask1.ExpectedStartDate = monday; childTask1.ExpectedFinishDate = friday; childTask2.ExpectedStartDate = tuesday; childTask2.ExpectedFinishDate = friday; float effort = parentTask.CalculateExpectedEffort(); Assert.That(effort, Is.EqualTo(72f)); }
private ProjectTask AddProjectTask(ProjectTask task) { return(task.AddTask(VALID_PROJECTTASK_NAME)); }