コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
 private ProjectTask AddProjectTask(ProjectTask task)
 {
     return(task.AddTask(VALID_PROJECTTASK_NAME));
 }