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); }
private static CalendarDay Tweak( this CalendarDay calendarDay, CalendarDayComponent componentToTweak) { if (componentToTweak == CalendarDayComponent.Day) { var tweakedDay = A.Dummy <DayOfMonth>().ThatIs( d => d != calendarDay.DayOfMonth && DoesNotThrow(() => new CalendarDay(calendarDay.Year, calendarDay.MonthOfYear, d))); var result = new CalendarDay(calendarDay.Year, calendarDay.MonthOfYear, tweakedDay); return(result); } if (componentToTweak == CalendarDayComponent.Month) { var tweakedMonth = A.Dummy <MonthOfYear>().ThatIs( m => m != calendarDay.MonthOfYear && DoesNotThrow(() => new CalendarDay(calendarDay.Year, m, calendarDay.DayOfMonth))); var result = new CalendarDay(calendarDay.Year, tweakedMonth, calendarDay.DayOfMonth); return(result); } if (componentToTweak == CalendarDayComponent.Year) { var tweakedYear = A.Dummy <PositiveInteger>().ThatIs( y => y != calendarDay.Year && y <= 9999 && DoesNotThrow(() => new CalendarDay(y, calendarDay.MonthOfYear, calendarDay.DayOfMonth))); var result = new CalendarDay(tweakedYear, calendarDay.MonthOfYear, calendarDay.DayOfMonth); return(result); } throw new NotSupportedException("this calendar day component is not supported: " + componentToTweak); }