public void WhenParentIsNotRoot_DecreaseShouldNotSkipOtherStatus() { var openTask = new Task { Title = "Title" }; openTask.Open(); var closedTask1 = new Task { Title = "Title" }; closedTask1.Close(); var closedTask2 = new Task { Title = "Title" }; closedTask2.Close(); var parent = new Task { Title = "Title" }; var parentId = _sut.AddTask(parent); var idClosed1 = _sut.AddSubTask(closedTask1, parentId); _sut.AddSubTask(openTask, parentId); _sut.AddSubTask(closedTask2, parentId); _sut.DecreasePriority(idClosed1); var fetchedParentTask = _sut.GetTaskById(parentId); Assert.AreEqual(3, fetchedParentTask.SubTasks.Count); Assert.AreEqual(openTask, fetchedParentTask.SubTasks[0]); Assert.AreEqual(closedTask1, fetchedParentTask.SubTasks[1]); Assert.AreEqual(closedTask2, fetchedParentTask.SubTasks[2]); }