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); }
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 }
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); }
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); }
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); }