public void GetNextPlannedTaskTest()
        {
            var p          = new MockPlanning();
            var firstTask  = new MockTask();
            var secondTask = new MockTask();
            var lastTask   = new MockTask();

            p.SetContent(new List <IWeek>
            {
                new IWeek(new List <AbstractDay> {
                    new Day(new List <AbstractTask> {
                        firstTask
                    }),
                    new Day(),
                    new Day(),
                    new Day(),
                    new Day(),
                    new Day(),
                    new Day(),
                }),
                new IWeek(new List <AbstractDay> {
                    new Day(new List <AbstractTask> {
                        secondTask
                    }),
                    new Day(),
                    new Day(),
                    new Day(),
                    new Day(),
                    new Day(),
                    new Day(new List <AbstractTask> {
                        lastTask
                    }),
                })
            });
            var curDay          = p.GetCurrentDay();
            var resultFirstTask = p.GetNextPlannedTask();

            Assert.AreEqual(firstTask, resultFirstTask);
            firstTask.IsFinished = true;
            var resultSecondTask = p.GetNextPlannedTask();

            Assert.AreEqual(secondTask, resultSecondTask);
            // Verify that the current task has no difference with the current day
            Assert.AreEqual(curDay, p.GetCurrentDay());
            Assert.AreEqual(secondTask, p.GetNextPlannedTask());
            p.currentDayIndex = 10;
            Assert.AreEqual(lastTask, p.GetNextPlannedTask());
        }
        public void VerifyCurrentDayTest()
        {
            var curDay        = new Day();
            var daySecondWeek = new Day();
            var p             = new MockPlanning();

            p.SetContent(new List <IWeek>
            {
                new IWeek(new List <AbstractDay> {
                    new Day(new List <AbstractTask> {
                        new MockTask()
                    }),
                    new Day(),
                    new Day(),
                    curDay,
                    new Day(),
                    new Day(),
                    new Day()
                }),
                new IWeek(new List <AbstractDay> {
                    new Day(new List <AbstractTask> {
                        new MockTask()
                    }),
                    new Day(),
                    new Day(),
                    new Day(),
                    new Day(),
                    daySecondWeek,
                    new Day(new List <AbstractTask> {
                        new MockTask()
                    }),
                })
            });
            if (p.GetCurrentDay() == null)
            {
                Assert.Fail("The first day should be set automatically when setting the content");
            }

            p.currentDayIndex = 3;
            Assert.AreEqual(p.GetCurrentDay(), curDay);
            p.currentDayIndex = 12;
            Assert.AreEqual(p.GetCurrentDay(), daySecondWeek);
        }