public void DueDate(string input, int expectedMonth)
        {
            var task = new Task(input, default(DateTime));

            Expect(task.DueDate, Is.Not.Null);
            Expect(task.DueDate.Value.Month, Is.EqualTo(expectedMonth));
        }
        public void DayIsPastTheLastDayOfTheMonth_DoesNotParseDueDate()
        {
            var input = "Exercise sep 63";

            var task = new Task(input, default(DateTime));

            Expect(task.DueDate, Is.Null);
        }
        public void TwoDigitDay_ParseBothDigits()
        {
            var input = "Exercise sep 18";

            var task = new Task(input, default(DateTime));

            Expect(task.DueDate.Value.Day, Is.EqualTo(18));
        }
        public void MonthDueDateWithYearWrap(string input)
        {
            var today = new DateTime(2016, 10, 30);

            var task = new Task(input, today);

            Expect(task.DueDate.Value.Year, Is.EqualTo(2017));
        }
        public void DescriptionAndNoDueDate()
        {
            var input = "Buy groceries";

            var task = new Task(input, default(DateTime));

            Expect(task.Description, Is.EqualTo(input));
            Assert.AreEqual(null, task.DueDate);
        }
        public void MonthDueDateWithoutYearWrap()
        {
            var input = "Buy groceries oct 30";

            var today = new DateTime(2016, 10, 23);

            var task = new Task(input, today);

            Expect(task.DueDate, Is.EqualTo(new DateTime(2016, 10, 30)));
        }
        public void AddFeb29TaskInMarchOfYearBeforeLeapYear_ParsesDueDate()
        {
            var input = "Exercise feb 29";
            var today = new DateTime(2016, 1, 31);

            var task = new Task(input, today);

            Expect(task.DueDate.Value, Is.EqualTo(new DateTime(2016, 2, 29)));
        }