コード例 #1
0
        public void SimplifedDate_AddMonths_ShouldReturnCorrectDate()
        {
            // Arrange
            var date        = new SimplifiedDate(2017, 12);
            var anotherDate = new SimplifiedDate(2015, 8);

            // Act
            var date1   = date.AddMonths(1);
            var date2   = date.AddMonths(0);
            var date3   = date.AddMonths(-1);
            var date4   = date.SubtractMonths(1);
            var date5   = date.SubtractMonths(-1);
            var months1 = date.GetDateDifferenceInMonths(anotherDate);
            var months2 = anotherDate.GetDateDifferenceInMonths(date);

            // Assert
            Assert.AreEqual(1, date1.Month);
            Assert.AreEqual(2018, date1.Year);
            Assert.AreEqual(12, date2.Month);
            Assert.AreEqual(2017, date2.Year);
            Assert.AreEqual(11, date3.Month);
            Assert.AreEqual(2017, date3.Year);
            Assert.AreEqual(11, date4.Month);
            Assert.AreEqual(2017, date4.Year);
            Assert.AreEqual(1, date5.Month);
            Assert.AreEqual(2018, date5.Year);
            Assert.AreEqual(28, months1);
            Assert.AreEqual(-28, months2);
        }
コード例 #2
0
        public void SimplifiedDate_UsingMidFebruary_ShouldRoundCorrectlyForLeapYears()
        {
            // Arrange + Act
            var leapYearDate    = new SimplifiedDate(new System.DateTime(2016, 2, 15), MonthRounding.MonthNearest);
            var nonLeapYearDate = new SimplifiedDate(new System.DateTime(2017, 2, 15), MonthRounding.MonthNearest);

            // Assert
            Assert.AreEqual(2, leapYearDate.Month);    // 29 days, so the 15th rounds down
            Assert.AreEqual(3, nonLeapYearDate.Month); // 28 days, so 15th rounds up
        }
コード例 #3
0
        public void SimplifiedDate_AddMonths_ShouldNotChangeObject()
        {
            // Arrange
            var date         = new SimplifiedDate(new System.DateTime(2017, 12, 31), MonthRounding.MonthLast);
            var expectedDate = new SimplifiedDate(new System.DateTime(2017, 12, 31), MonthRounding.MonthLast);

            // Act
            date.AddMonths(1);

            // Assert - enumerate the public properties
            Assert.AreEqual(expectedDate.Year, date.Year);
            Assert.AreEqual(expectedDate.Month, date.Month);
        }
コード例 #4
0
        public void SimplifiedDate_AddMonths_ShouldReturnCorrectNewObject()
        {
            // Arrange
            var date         = new SimplifiedDate(new System.DateTime(2017, 12, 31), MonthRounding.MonthLast);
            var expectedDate = new SimplifiedDate(new System.DateTime(2018, 1, 31), MonthRounding.MonthLast);

            // Act
            var newDate = date.AddMonths(1);

            // Assert
            Assert.AreEqual(expectedDate.Month, newDate.Month);
            Assert.AreEqual(expectedDate.Year, newDate.Year);
        }
コード例 #5
0
        public void SimplifiedDate_UsingEndOfMonthValues_ShouldReturnCorrectRounding()
        {
            // Arrange
            var lateMonthDate = new System.DateTime(2017, 12, 31);

            // Act
            var dateMonthLast    = new SimplifiedDate(lateMonthDate, MonthRounding.MonthLast);
            var dateMonthNearest = new SimplifiedDate(lateMonthDate, MonthRounding.MonthNearest);

            // Assert

            // Take start of month
            Assert.AreEqual(2017, dateMonthLast.Year);
            Assert.AreEqual(12, dateMonthLast.Month);
            // Round up
            Assert.AreEqual(2018, dateMonthNearest.Year);
            Assert.AreEqual(1, dateMonthNearest.Month);
        }