public void Should_Not_Touch_Enumerator() { var collection = new Collection { Id = 1, Name = "Filler Items", MediaItems = new List <MediaItem>() }; for (var i = 0; i < 5; i++) { collection.MediaItems.Add(TestMovie(i + 1, TimeSpan.FromHours(i + 1), new DateTime(2020, 2, i + 1))); } var fillerPreset = new FillerPreset { FillerKind = FillerKind.PreRoll, FillerMode = FillerMode.Count, Count = 3, Collection = collection, CollectionId = collection.Id }; var enumerator = new ChronologicalMediaCollectionEnumerator( collection.MediaItems, new CollectionEnumeratorState { Index = 0, Seed = 1 }); DateTimeOffset result = PlayoutModeSchedulerBase <ProgramScheduleItem> .CalculateEndTimeWithFiller( new Dictionary <CollectionKey, IMediaCollectionEnumerator> { { CollectionKey.ForFillerPreset(fillerPreset), enumerator } }, new ProgramScheduleItemOne { PreRollFiller = fillerPreset }, new DateTimeOffset(2020, 2, 1, 12, 0, 0, TimeSpan.FromHours(-5)), new TimeSpan(0, 12, 30), new List <MediaChapter>()); result.Should().Be(new DateTimeOffset(2020, 2, 1, 18, 12, 30, TimeSpan.FromHours(-5))); enumerator.State.Index.Should().Be(0); enumerator.State.Seed.Should().Be(1); }
public void Should_Pad_To_15_Minutes_30() { DateTimeOffset result = PlayoutModeSchedulerBase <ProgramScheduleItem> .CalculateEndTimeWithFiller( new Dictionary <CollectionKey, IMediaCollectionEnumerator>(), new ProgramScheduleItemOne { MidRollFiller = new FillerPreset { FillerKind = FillerKind.MidRoll, FillerMode = FillerMode.Pad, PadToNearestMinute = 15 } }, new DateTimeOffset(2020, 2, 1, 12, 16, 0, TimeSpan.FromHours(-5)), new TimeSpan(0, 12, 30), new List <MediaChapter>()); result.Should().Be(new DateTimeOffset(2020, 2, 1, 12, 30, 0, TimeSpan.FromHours(-5))); }
public void Should_Compare_Time_As_Local_Time() { var enumerator = new Mock <IScheduleItemsEnumerator>(); var state = new PlayoutBuilderState( enumerator.Object, None, None, false, false, 0, DateTime.Today.AddHours(6).ToUniversalTime()); var scheduleItem = new ProgramScheduleItemOne { StartTime = TimeSpan.FromHours(6) }; DateTimeOffset result = PlayoutModeSchedulerBase <ProgramScheduleItem> .GetStartTimeAfter(state, scheduleItem); result.Should().Be(DateTime.Today.AddHours(6)); }