public void AddTask(IEditableGoalTask goalTask) { IWeightedEntity weightedTask = goalTask as IWeightedEntity; if (goalTask.PercentCompleted < 0) { throw new ArgumentOutOfRangeException("Percent cannot be a negative value."); } if (goalTask.PercentCompleted > 100) { throw new ArgumentOutOfRangeException("Percent value cannot exceed 100."); } if (weightedTask.Weighting <= 0) { throw new ArgumentOutOfRangeException("Cannot add a task with an invalid weighting"); } if (weightedTask.Weighting > 100) { throw new ArgumentOutOfRangeException("Cannot add a task with an invalid weighting"); } goalTasks.Add(goalTask); progressCalculator.Add(goalTask as IWeightedEntity); }
public void Goal_Existing_Has_SetState_Via_Constructor() { IEditableGoalTask[] goalTasks = new IEditableGoalTask[] { new Mock <IEditableGoalTask>().Object, new Mock <IEditableGoalTask>().Object }; Goal goal = new Goal(goalTasks); Assert.AreEqual(2, goal.TaskCount); Assert.AreEqual(2, goal.Tasks.Length); }