public void KeepDateTimeKind_WhenSplitting(DateTimeKind kind) { CalendarItem item = NewCalendarItem( new DateTime(2018, 12, 20, 0, 0, 0, kind), new DateTime(2019, 1, 5, 0, 0, 0, kind)); CalendarItem[] result = item.MaybeSplit(2018).ToArray(); result[0].StartDate.Kind.ShouldBe(kind); result[0].EndDate.Kind.ShouldBe(kind); result[1].StartDate.Kind.ShouldBe(kind); result[1].EndDate.Kind.ShouldBe(kind); }
public void SplitInTwo_WhenItemStartsDuringYearAndEndsAfterYear() { CalendarItem item = NewCalendarItem( new DateTime(2018, 12, 20), new DateTime(2019, 1, 5)); CalendarItem[] result = item.MaybeSplit(2018).ToArray(); result.Length.ShouldBe(2); result[0].Id.ShouldBe(item.Id); result[0].Title.ShouldBe(item.Title); result[0].StartDate.ShouldBe(item.StartDate); result[0].EndDate.ShouldBe(new DateTime(2018, 12, 31, 23, 59, 0)); result[1].Id.ShouldBe(item.Id); result[1].Title.ShouldBe(item.Title); result[1].StartDate.ShouldBe(new DateTime(2019, 1, 1)); result[1].EndDate.ShouldBe(item.EndDate); }
public void SplitInTwo_WhenItemStartsInPreviousYearAndEndsInCurrentYear() { CalendarItem item = NewCalendarItem( new DateTime(2017, 12, 31), new DateTime(2018, 1, 1, 23, 59, 59)); CalendarItem[] result = item.MaybeSplit(2018).ToArray(); result.Length.ShouldBe(2); result[0].Id.ShouldBe(item.Id); result[0].Title.ShouldBe(item.Title); result[0].StartDate.ShouldBe(item.StartDate); result[0].EndDate.ShouldBe(new DateTime(2017, 12, 31, 23, 59, 0)); result[1].Id.ShouldBe(item.Id); result[1].Title.ShouldBe(item.Title); result[1].StartDate.ShouldBe(new DateTime(2018, 1, 1)); result[1].EndDate.ShouldBe(item.EndDate); }