public void InsertTest() { var schoolDay = new SchoolDay(); // first int count = schoolDay.Count; DateTime start = schoolDay.Start; Lesson lesson1 = new Lesson(schoolDay.Start); schoolDay.Insert(0, lesson1); Assert.AreEqual(schoolDay.Count, count + 1); Assert.AreEqual(schoolDay[0], lesson1); Assert.AreEqual(schoolDay.First, lesson1); Assert.AreEqual(schoolDay.Start, start.Subtract(lesson1.Duration)); Assert.AreEqual(lesson1.Start, schoolDay.Start); Assert.AreEqual(lesson1.End, start); Assert.AreEqual(lesson1.Duration, Lesson.LessonDuration); // inside count = schoolDay.Count; start = schoolDay.Start; ShortBreak shortBreak1 = new ShortBreak(schoolDay.Start); schoolDay.Insert(1, shortBreak1); Assert.AreEqual(schoolDay.Count, count + 1); Assert.AreEqual(schoolDay[1], shortBreak1); Assert.AreEqual(schoolDay.First, lesson1); Assert.AreEqual(schoolDay.Start, start); Assert.AreEqual(shortBreak1.Start, schoolDay.Start.Add(lesson1.Duration)); Assert.AreEqual(shortBreak1.Duration, ShortBreak.ShortBreakDuration); // last count = schoolDay.Count; DateTime end = schoolDay.End; ShortBreak shortBreak2 = new ShortBreak(schoolDay.Start); schoolDay.Insert(schoolDay.Count, shortBreak2); Assert.AreEqual(schoolDay.Count, count + 1); Assert.AreEqual(schoolDay[count], shortBreak2); Assert.AreEqual(schoolDay.Last, shortBreak2); Assert.AreEqual(schoolDay.End, shortBreak2.End); Assert.AreEqual(shortBreak2.Start, end); Assert.AreEqual(shortBreak2.Duration, ShortBreak.ShortBreakDuration); }