Esempio n. 1
0
        private static CalendarDay TweakBy(
            this CalendarDay calendarDay,
            int amount,
            CalendarDayComponent componentToTweak)
        {
            if (componentToTweak == CalendarDayComponent.Day)
            {
                var updatedDateTime = calendarDay.ToDateTime().AddDays(amount);

                var result = new CalendarDay(updatedDateTime.Year, (MonthOfYear)updatedDateTime.Month, (DayOfMonth)updatedDateTime.Day);

                return(result);
            }

            if (componentToTweak == CalendarDayComponent.Month)
            {
                var updatedDateTime = calendarDay.ToDateTime().AddMonths(amount);

                var result = new CalendarDay(updatedDateTime.Year, (MonthOfYear)updatedDateTime.Month, (DayOfMonth)updatedDateTime.Day);

                return(result);
            }

            if (componentToTweak == CalendarDayComponent.Year)
            {
                var updatedDateTime = calendarDay.ToDateTime().AddYears(amount);

                var result = new CalendarDay(updatedDateTime.Year, (MonthOfYear)updatedDateTime.Month, (DayOfMonth)updatedDateTime.Day);

                return(result);
            }

            throw new NotSupportedException("this calendar day component is not supported: " + componentToTweak);
        }
        public static void GetUnitsToDate___Should_return_all_days_from_january_1_to_lastUnitOfTimeInYear___When_lastUnitOfTimeInYear_is_of_type_CalendarDay()
        {
            // Arrange
            var lastUnitOfTimeInYear1 = new CalendarDay(2016, MonthOfYear.March, DayOfMonth.One);
            var lastUnitOfTimeInYear2 = new CalendarDay(2016, MonthOfYear.January, DayOfMonth.One);

            var expectedUnitsToDate1 = new List <CalendarDay>();

            for (var date = new DateTime(2016, 1, 1); date <= lastUnitOfTimeInYear1.ToDateTime(); date = date.AddDays(1))
            {
                expectedUnitsToDate1.Add(date.ToCalendarDay());
            }

            var expectedUnitsToDate2 = new List <CalendarDay> {
                lastUnitOfTimeInYear2
            };

            // Act
            var actualUnitsToDate1 = lastUnitOfTimeInYear1.GetUnitsToDate();
            var actualUnitsToDate2 = lastUnitOfTimeInYear2.GetUnitsToDate();

            // Assert
            actualUnitsToDate1.Should().Equal(expectedUnitsToDate1);
            actualUnitsToDate2.Should().Equal(expectedUnitsToDate2);
        }
Esempio n. 3
0
        public static void ToDateTime___Should_return_DateTime_version_of_CalendarDay_with_DateTimeKind_Unspecified___When_called()
        {
            // Arrange
            var systemUnderTest1 = A.Dummy <CalendarDay>();
            var systemUnderTest2 = new CalendarDay(2017, MonthOfYear.November, DayOfMonth.Thirty);

            var expectedDateTime1 = new DateTime(systemUnderTest1.Year, (int)systemUnderTest1.MonthOfYear, (int)systemUnderTest1.DayOfMonth);
            var expectedDateTime2 = new DateTime(2017, 11, 30);

            // Act
            var dateTime1 = systemUnderTest1.ToDateTime();
            var dateTime2 = systemUnderTest2.ToDateTime();

            // Assert
            dateTime1.AsTest().Must().BeEqualTo(expectedDateTime1);
            dateTime1.Kind.AsTest().Must().BeEqualTo(DateTimeKind.Unspecified);

            dateTime2.AsTest().Must().BeEqualTo(expectedDateTime2);
            dateTime2.Kind.AsTest().Must().BeEqualTo(DateTimeKind.Unspecified);
        }