@ -2,7 +2,7 @@
@@ -2,7 +2,7 @@
using ErsatzTV.Core.Domain ;
using ErsatzTV.Core.Domain.Filler ;
using ErsatzTV.Core.Scheduling ;
using FluentAssertions ;
using Shouldly ;
using Microsoft.Extensions.Logging ;
using NUnit.Framework ;
using Serilog ;
@ -68,40 +68,40 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@@ -68,40 +68,40 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
HardStop ( scheduleItemsEnumerator ) ,
_ cancellationToken ) ;
playoutBuilderState . CurrentTime . Should ( ) . Be ( startState . CurrentTime . AddHours ( 3 ) ) ;
playoutItems . Last ( ) . FinishOffset . Should ( ) . Be ( playoutBuilderState . CurrentTime ) ;
playoutBuilderState . NextGuideGroup . Should ( ) . Be ( 2 ) ; // one guide group here because of custom title
playoutBuilderState . DurationFinish . IsNone . Should ( ) . BeTrue ( ) ;
playoutBuilderState . InFlood . Should ( ) . BeFalse ( ) ;
playoutBuilderState . MultipleRemaining . IsNone . Should ( ) . BeTrue ( ) ;
playoutBuilderState . InDurationFiller . Should ( ) . BeFalse ( ) ;
playoutBuilderState . ScheduleItemsEnumerator . State . Index . Should ( ) . Be ( 0 ) ;
enumerator . State . Index . Should ( ) . Be ( 1 ) ;
playoutItems . Count . Should ( ) . Be ( 3 ) ;
playoutItems [ 0 ] . MediaItemId . Should ( ) . Be ( 1 ) ;
playoutItems [ 0 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime ) ;
playoutItems [ 0 ] . GuideGroup . Should ( ) . Be ( 1 ) ;
playoutItems [ 0 ] . FillerKind . Should ( ) . Be ( FillerKind . None ) ;
playoutItems [ 0 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutItems [ 0 ] . CustomTitle . Should ( ) . Be ( "CustomTitle" ) ;
playoutItems [ 1 ] . MediaItemId . Should ( ) . Be ( 2 ) ;
playoutItems [ 1 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime . AddHours ( 1 ) ) ;
playoutItems [ 1 ] . GuideGroup . Should ( ) . Be ( 1 ) ;
playoutItems [ 1 ] . FillerKind . Should ( ) . Be ( FillerKind . None ) ;
playoutItems [ 1 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutItems [ 1 ] . CustomTitle . Should ( ) . Be ( "CustomTitle" ) ;
playoutItems [ 2 ] . MediaItemId . Should ( ) . Be ( 1 ) ;
playoutItems [ 2 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime . AddHours ( 2 ) ) ;
playoutItems [ 2 ] . GuideGroup . Should ( ) . Be ( 1 ) ;
playoutItems [ 2 ] . FillerKind . Should ( ) . Be ( FillerKind . None ) ;
playoutItems [ 2 ] . GuideFinish . HasValue . Should ( ) . BeTrue ( ) ;
playoutItems [ 2 ] . CustomTitle . Should ( ) . Be ( "CustomTitle" ) ;
playoutBuilderState . CurrentTime . ShouldBe ( startState . CurrentTime . AddHours ( 3 ) ) ;
playoutItems . Last ( ) . FinishOffset . ShouldBe ( playoutBuilderState . CurrentTime ) ;
playoutBuilderState . NextGuideGroup . ShouldBe ( 2 ) ; // one guide group here because of custom title
playoutBuilderState . DurationFinish . IsNone . ShouldBeTrue ( ) ;
playoutBuilderState . InFlood . ShouldBeFalse ( ) ;
playoutBuilderState . MultipleRemaining . IsNone . ShouldBeTrue ( ) ;
playoutBuilderState . InDurationFiller . ShouldBeFalse ( ) ;
playoutBuilderState . ScheduleItemsEnumerator . State . Index . ShouldBe ( 0 ) ;
enumerator . State . Index . ShouldBe ( 1 ) ;
playoutItems . Count . ShouldBe ( 3 ) ;
playoutItems [ 0 ] . MediaItemId . ShouldBe ( 1 ) ;
playoutItems [ 0 ] . StartOffset . ShouldBe ( startState . CurrentTime ) ;
playoutItems [ 0 ] . GuideGroup . ShouldBe ( 1 ) ;
playoutItems [ 0 ] . FillerKind . ShouldBe ( FillerKind . None ) ;
playoutItems [ 0 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
playoutItems [ 0 ] . CustomTitle . ShouldBe ( "CustomTitle" ) ;
playoutItems [ 1 ] . MediaItemId . ShouldBe ( 2 ) ;
playoutItems [ 1 ] . StartOffset . ShouldBe ( startState . CurrentTime . AddHours ( 1 ) ) ;
playoutItems [ 1 ] . GuideGroup . ShouldBe ( 1 ) ;
playoutItems [ 1 ] . FillerKind . ShouldBe ( FillerKind . None ) ;
playoutItems [ 1 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
playoutItems [ 1 ] . CustomTitle . ShouldBe ( "CustomTitle" ) ;
playoutItems [ 2 ] . MediaItemId . ShouldBe ( 1 ) ;
playoutItems [ 2 ] . StartOffset . ShouldBe ( startState . CurrentTime . AddHours ( 2 ) ) ;
playoutItems [ 2 ] . GuideGroup . ShouldBe ( 1 ) ;
playoutItems [ 2 ] . FillerKind . ShouldBe ( FillerKind . None ) ;
playoutItems [ 2 ] . GuideFinish . HasValue . ShouldBeTrue ( ) ;
playoutItems [ 2 ] . CustomTitle . ShouldBe ( "CustomTitle" ) ;
}
[Test]
@ -141,40 +141,40 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@@ -141,40 +141,40 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
HardStop ( scheduleItemsEnumerator ) ,
_ cancellationToken ) ;
playoutBuilderState . CurrentTime . Should ( ) . Be ( startState . CurrentTime . AddHours ( 3 ) ) ;
playoutItems . Last ( ) . FinishOffset . Should ( ) . Be ( playoutBuilderState . CurrentTime ) ;
playoutBuilderState . NextGuideGroup . Should ( ) . Be ( 2 ) ;
playoutBuilderState . DurationFinish . IsNone . Should ( ) . BeTrue ( ) ;
playoutBuilderState . InFlood . Should ( ) . BeFalse ( ) ;
playoutBuilderState . MultipleRemaining . IsNone . Should ( ) . BeTrue ( ) ;
playoutBuilderState . InDurationFiller . Should ( ) . BeFalse ( ) ;
playoutBuilderState . ScheduleItemsEnumerator . State . Index . Should ( ) . Be ( 0 ) ;
enumerator . State . Index . Should ( ) . Be ( 1 ) ;
playoutItems . Count . Should ( ) . Be ( 3 ) ;
playoutItems [ 0 ] . MediaItemId . Should ( ) . Be ( 1 ) ;
playoutItems [ 0 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime ) ;
playoutItems [ 0 ] . GuideGroup . Should ( ) . Be ( 1 ) ;
playoutItems [ 0 ] . FillerKind . Should ( ) . Be ( FillerKind . None ) ;
playoutItems [ 0 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutItems [ 0 ] . CustomTitle . Should ( ) . Be ( "Custom Title" ) ;
playoutItems [ 1 ] . MediaItemId . Should ( ) . Be ( 2 ) ;
playoutItems [ 1 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime . AddHours ( 1 ) ) ;
playoutItems [ 1 ] . GuideGroup . Should ( ) . Be ( 1 ) ;
playoutItems [ 1 ] . FillerKind . Should ( ) . Be ( FillerKind . None ) ;
playoutItems [ 1 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutItems [ 1 ] . CustomTitle . Should ( ) . Be ( "Custom Title" ) ;
playoutItems [ 2 ] . MediaItemId . Should ( ) . Be ( 1 ) ;
playoutItems [ 2 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime . AddHours ( 2 ) ) ;
playoutItems [ 2 ] . GuideGroup . Should ( ) . Be ( 1 ) ;
playoutItems [ 2 ] . FillerKind . Should ( ) . Be ( FillerKind . None ) ;
playoutItems [ 2 ] . GuideFinish . HasValue . Should ( ) . BeTrue ( ) ;
playoutItems [ 2 ] . CustomTitle . Should ( ) . Be ( "Custom Title" ) ;
playoutBuilderState . CurrentTime . ShouldBe ( startState . CurrentTime . AddHours ( 3 ) ) ;
playoutItems . Last ( ) . FinishOffset . ShouldBe ( playoutBuilderState . CurrentTime ) ;
playoutBuilderState . NextGuideGroup . ShouldBe ( 2 ) ;
playoutBuilderState . DurationFinish . IsNone . ShouldBeTrue ( ) ;
playoutBuilderState . InFlood . ShouldBeFalse ( ) ;
playoutBuilderState . MultipleRemaining . IsNone . ShouldBeTrue ( ) ;
playoutBuilderState . InDurationFiller . ShouldBeFalse ( ) ;
playoutBuilderState . ScheduleItemsEnumerator . State . Index . ShouldBe ( 0 ) ;
enumerator . State . Index . ShouldBe ( 1 ) ;
playoutItems . Count . ShouldBe ( 3 ) ;
playoutItems [ 0 ] . MediaItemId . ShouldBe ( 1 ) ;
playoutItems [ 0 ] . StartOffset . ShouldBe ( startState . CurrentTime ) ;
playoutItems [ 0 ] . GuideGroup . ShouldBe ( 1 ) ;
playoutItems [ 0 ] . FillerKind . ShouldBe ( FillerKind . None ) ;
playoutItems [ 0 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
playoutItems [ 0 ] . CustomTitle . ShouldBe ( "Custom Title" ) ;
playoutItems [ 1 ] . MediaItemId . ShouldBe ( 2 ) ;
playoutItems [ 1 ] . StartOffset . ShouldBe ( startState . CurrentTime . AddHours ( 1 ) ) ;
playoutItems [ 1 ] . GuideGroup . ShouldBe ( 1 ) ;
playoutItems [ 1 ] . FillerKind . ShouldBe ( FillerKind . None ) ;
playoutItems [ 1 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
playoutItems [ 1 ] . CustomTitle . ShouldBe ( "Custom Title" ) ;
playoutItems [ 2 ] . MediaItemId . ShouldBe ( 1 ) ;
playoutItems [ 2 ] . StartOffset . ShouldBe ( startState . CurrentTime . AddHours ( 2 ) ) ;
playoutItems [ 2 ] . GuideGroup . ShouldBe ( 1 ) ;
playoutItems [ 2 ] . FillerKind . ShouldBe ( FillerKind . None ) ;
playoutItems [ 2 ] . GuideFinish . HasValue . ShouldBeTrue ( ) ;
playoutItems [ 2 ] . CustomTitle . ShouldBe ( "Custom Title" ) ;
}
[Test]
@ -213,37 +213,37 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@@ -213,37 +213,37 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
HardStop ( scheduleItemsEnumerator ) ,
_ cancellationToken ) ;
playoutBuilderState . CurrentTime . Should ( ) . Be ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 4 5 , 0 ) ) ) ;
playoutItems . Last ( ) . FinishOffset . Should ( ) . Be ( playoutBuilderState . CurrentTime ) ;
playoutBuilderState . NextGuideGroup . Should ( ) . Be ( 4 ) ;
playoutBuilderState . DurationFinish . IsNone . Should ( ) . BeTrue ( ) ;
playoutBuilderState . InFlood . Should ( ) . BeFalse ( ) ;
playoutBuilderState . MultipleRemaining . IsNone . Should ( ) . BeTrue ( ) ;
playoutBuilderState . InDurationFiller . Should ( ) . BeFalse ( ) ;
playoutBuilderState . ScheduleItemsEnumerator . State . Index . Should ( ) . Be ( 0 ) ;
enumerator . State . Index . Should ( ) . Be ( 1 ) ;
playoutItems . Count . Should ( ) . Be ( 3 ) ;
playoutItems [ 0 ] . MediaItemId . Should ( ) . Be ( 1 ) ;
playoutItems [ 0 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime ) ;
playoutItems [ 0 ] . GuideGroup . Should ( ) . Be ( 1 ) ;
playoutItems [ 0 ] . FillerKind . Should ( ) . Be ( FillerKind . None ) ;
playoutItems [ 0 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutItems [ 1 ] . MediaItemId . Should ( ) . Be ( 2 ) ;
playoutItems [ 1 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime . AddMinutes ( 5 5 ) ) ;
playoutItems [ 1 ] . GuideGroup . Should ( ) . Be ( 2 ) ;
playoutItems [ 1 ] . FillerKind . Should ( ) . Be ( FillerKind . None ) ;
playoutItems [ 1 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutItems [ 2 ] . MediaItemId . Should ( ) . Be ( 1 ) ;
playoutItems [ 2 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime . Add ( new TimeSpan ( 1 , 5 0 , 0 ) ) ) ;
playoutItems [ 2 ] . GuideGroup . Should ( ) . Be ( 3 ) ;
playoutItems [ 2 ] . FillerKind . Should ( ) . Be ( FillerKind . None ) ;
playoutItems [ 2 ] . GuideFinish . HasValue . Should ( ) . BeTrue ( ) ;
playoutBuilderState . CurrentTime . ShouldBe ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 4 5 , 0 ) ) ) ;
playoutItems . Last ( ) . FinishOffset . ShouldBe ( playoutBuilderState . CurrentTime ) ;
playoutBuilderState . NextGuideGroup . ShouldBe ( 4 ) ;
playoutBuilderState . DurationFinish . IsNone . ShouldBeTrue ( ) ;
playoutBuilderState . InFlood . ShouldBeFalse ( ) ;
playoutBuilderState . MultipleRemaining . IsNone . ShouldBeTrue ( ) ;
playoutBuilderState . InDurationFiller . ShouldBeFalse ( ) ;
playoutBuilderState . ScheduleItemsEnumerator . State . Index . ShouldBe ( 0 ) ;
enumerator . State . Index . ShouldBe ( 1 ) ;
playoutItems . Count . ShouldBe ( 3 ) ;
playoutItems [ 0 ] . MediaItemId . ShouldBe ( 1 ) ;
playoutItems [ 0 ] . StartOffset . ShouldBe ( startState . CurrentTime ) ;
playoutItems [ 0 ] . GuideGroup . ShouldBe ( 1 ) ;
playoutItems [ 0 ] . FillerKind . ShouldBe ( FillerKind . None ) ;
playoutItems [ 0 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
playoutItems [ 1 ] . MediaItemId . ShouldBe ( 2 ) ;
playoutItems [ 1 ] . StartOffset . ShouldBe ( startState . CurrentTime . AddMinutes ( 5 5 ) ) ;
playoutItems [ 1 ] . GuideGroup . ShouldBe ( 2 ) ;
playoutItems [ 1 ] . FillerKind . ShouldBe ( FillerKind . None ) ;
playoutItems [ 1 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
playoutItems [ 2 ] . MediaItemId . ShouldBe ( 1 ) ;
playoutItems [ 2 ] . StartOffset . ShouldBe ( startState . CurrentTime . Add ( new TimeSpan ( 1 , 5 0 , 0 ) ) ) ;
playoutItems [ 2 ] . GuideGroup . ShouldBe ( 3 ) ;
playoutItems [ 2 ] . FillerKind . ShouldBe ( FillerKind . None ) ;
playoutItems [ 2 ] . GuideFinish . HasValue . ShouldBeTrue ( ) ;
}
[Test]
@ -283,39 +283,39 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@@ -283,39 +283,39 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
_ cancellationToken ) ;
// duration block should end after exact duration, with gap
playoutBuilderState . CurrentTime . Should ( ) . Be ( startState . CurrentTime . AddHours ( 3 ) ) ;
playoutItems . Last ( ) . FinishOffset . Should ( ) . Be ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 4 5 , 0 ) ) ) ;
playoutBuilderState . CurrentTime . ShouldBe ( startState . CurrentTime . AddHours ( 3 ) ) ;
playoutItems . Last ( ) . FinishOffset . ShouldBe ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 4 5 , 0 ) ) ) ;
playoutBuilderState . NextGuideGroup . Should ( ) . Be ( 4 ) ;
playoutBuilderState . DurationFinish . IsNone . Should ( ) . BeTrue ( ) ;
playoutBuilderState . InFlood . Should ( ) . BeFalse ( ) ;
playoutBuilderState . MultipleRemaining . IsNone . Should ( ) . BeTrue ( ) ;
playoutBuilderState . InDurationFiller . Should ( ) . BeFalse ( ) ;
playoutBuilderState . ScheduleItemsEnumerator . State . Index . Should ( ) . Be ( 0 ) ;
playoutBuilderState . NextGuideGroup . ShouldBe ( 4 ) ;
playoutBuilderState . DurationFinish . IsNone . ShouldBeTrue ( ) ;
playoutBuilderState . InFlood . ShouldBeFalse ( ) ;
playoutBuilderState . MultipleRemaining . IsNone . ShouldBeTrue ( ) ;
playoutBuilderState . InDurationFiller . ShouldBeFalse ( ) ;
playoutBuilderState . ScheduleItemsEnumerator . State . Index . ShouldBe ( 0 ) ;
enumerator . State . Index . Should ( ) . Be ( 1 ) ;
enumerator . State . Index . ShouldBe ( 1 ) ;
playoutItems . Count . Should ( ) . Be ( 3 ) ;
playoutItems . Count . ShouldBe ( 3 ) ;
playoutItems [ 0 ] . MediaItemId . Should ( ) . Be ( 1 ) ;
playoutItems [ 0 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime ) ;
playoutItems [ 0 ] . GuideGroup . Should ( ) . Be ( 1 ) ;
playoutItems [ 0 ] . FillerKind . Should ( ) . Be ( FillerKind . None ) ;
playoutItems [ 0 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutItems [ 0 ] . MediaItemId . ShouldBe ( 1 ) ;
playoutItems [ 0 ] . StartOffset . ShouldBe ( startState . CurrentTime ) ;
playoutItems [ 0 ] . GuideGroup . ShouldBe ( 1 ) ;
playoutItems [ 0 ] . FillerKind . ShouldBe ( FillerKind . None ) ;
playoutItems [ 0 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
playoutItems [ 1 ] . MediaItemId . Should ( ) . Be ( 2 ) ;
playoutItems [ 1 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime . AddMinutes ( 5 5 ) ) ;
playoutItems [ 1 ] . GuideGroup . Should ( ) . Be ( 2 ) ;
playoutItems [ 1 ] . FillerKind . Should ( ) . Be ( FillerKind . None ) ;
playoutItems [ 1 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutItems [ 1 ] . MediaItemId . ShouldBe ( 2 ) ;
playoutItems [ 1 ] . StartOffset . ShouldBe ( startState . CurrentTime . AddMinutes ( 5 5 ) ) ;
playoutItems [ 1 ] . GuideGroup . ShouldBe ( 2 ) ;
playoutItems [ 1 ] . FillerKind . ShouldBe ( FillerKind . None ) ;
playoutItems [ 1 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
playoutItems [ 2 ] . MediaItemId . Should ( ) . Be ( 1 ) ;
playoutItems [ 2 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime . Add ( new TimeSpan ( 1 , 5 0 , 0 ) ) ) ;
playoutItems [ 2 ] . GuideGroup . Should ( ) . Be ( 3 ) ;
playoutItems [ 2 ] . FillerKind . Should ( ) . Be ( FillerKind . None ) ;
playoutItems [ 2 ] . MediaItemId . ShouldBe ( 1 ) ;
playoutItems [ 2 ] . StartOffset . ShouldBe ( startState . CurrentTime . Add ( new TimeSpan ( 1 , 5 0 , 0 ) ) ) ;
playoutItems [ 2 ] . GuideGroup . ShouldBe ( 3 ) ;
playoutItems [ 2 ] . FillerKind . ShouldBe ( FillerKind . None ) ;
// offline should not set guide finish
playoutItems [ 2 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutItems [ 2 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
}
[Test]
@ -365,44 +365,44 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@@ -365,44 +365,44 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
HardStop ( scheduleItemsEnumerator ) ,
_ cancellationToken ) ;
playoutBuilderState . CurrentTime . Should ( ) . Be ( startState . CurrentTime . AddHours ( 3 ) ) ;
playoutItems . Last ( ) . FinishOffset . Should ( ) . Be ( playoutBuilderState . CurrentTime ) ;
playoutBuilderState . NextGuideGroup . Should ( ) . Be ( 4 ) ;
playoutBuilderState . DurationFinish . IsNone . Should ( ) . BeTrue ( ) ;
playoutBuilderState . InFlood . Should ( ) . BeFalse ( ) ;
playoutBuilderState . MultipleRemaining . IsNone . Should ( ) . BeTrue ( ) ;
playoutBuilderState . InDurationFiller . Should ( ) . BeFalse ( ) ;
playoutBuilderState . ScheduleItemsEnumerator . State . Index . Should ( ) . Be ( 0 ) ;
enumerator1 . State . Index . Should ( ) . Be ( 1 ) ;
enumerator2 . State . Index . Should ( ) . Be ( 1 ) ;
playoutItems . Count . Should ( ) . Be ( 4 ) ;
playoutItems [ 0 ] . MediaItemId . Should ( ) . Be ( 1 ) ;
playoutItems [ 0 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime ) ;
playoutItems [ 0 ] . GuideGroup . Should ( ) . Be ( 1 ) ;
playoutItems [ 0 ] . FillerKind . Should ( ) . Be ( FillerKind . None ) ;
playoutItems [ 0 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutItems [ 1 ] . MediaItemId . Should ( ) . Be ( 2 ) ;
playoutItems [ 1 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime . AddMinutes ( 5 5 ) ) ;
playoutItems [ 1 ] . GuideGroup . Should ( ) . Be ( 2 ) ;
playoutItems [ 1 ] . FillerKind . Should ( ) . Be ( FillerKind . None ) ;
playoutItems [ 1 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutItems [ 2 ] . MediaItemId . Should ( ) . Be ( 1 ) ;
playoutItems [ 2 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime . Add ( new TimeSpan ( 1 , 5 0 , 0 ) ) ) ;
playoutItems [ 2 ] . GuideGroup . Should ( ) . Be ( 3 ) ;
playoutItems [ 2 ] . FillerKind . Should ( ) . Be ( FillerKind . None ) ;
playoutItems [ 2 ] . GuideFinish . HasValue . Should ( ) . BeTrue ( ) ;
playoutItems [ 3 ] . MediaItemId . Should ( ) . Be ( 3 ) ;
playoutItems [ 3 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 4 5 , 0 ) ) ) ;
playoutItems [ 3 ] . GuideGroup . Should ( ) . Be ( 3 ) ;
playoutItems [ 3 ] . FillerKind . Should ( ) . Be ( FillerKind . Fallback ) ;
playoutItems [ 3 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutBuilderState . CurrentTime . ShouldBe ( startState . CurrentTime . AddHours ( 3 ) ) ;
playoutItems . Last ( ) . FinishOffset . ShouldBe ( playoutBuilderState . CurrentTime ) ;
playoutBuilderState . NextGuideGroup . ShouldBe ( 4 ) ;
playoutBuilderState . DurationFinish . IsNone . ShouldBeTrue ( ) ;
playoutBuilderState . InFlood . ShouldBeFalse ( ) ;
playoutBuilderState . MultipleRemaining . IsNone . ShouldBeTrue ( ) ;
playoutBuilderState . InDurationFiller . ShouldBeFalse ( ) ;
playoutBuilderState . ScheduleItemsEnumerator . State . Index . ShouldBe ( 0 ) ;
enumerator1 . State . Index . ShouldBe ( 1 ) ;
enumerator2 . State . Index . ShouldBe ( 1 ) ;
playoutItems . Count . ShouldBe ( 4 ) ;
playoutItems [ 0 ] . MediaItemId . ShouldBe ( 1 ) ;
playoutItems [ 0 ] . StartOffset . ShouldBe ( startState . CurrentTime ) ;
playoutItems [ 0 ] . GuideGroup . ShouldBe ( 1 ) ;
playoutItems [ 0 ] . FillerKind . ShouldBe ( FillerKind . None ) ;
playoutItems [ 0 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
playoutItems [ 1 ] . MediaItemId . ShouldBe ( 2 ) ;
playoutItems [ 1 ] . StartOffset . ShouldBe ( startState . CurrentTime . AddMinutes ( 5 5 ) ) ;
playoutItems [ 1 ] . GuideGroup . ShouldBe ( 2 ) ;
playoutItems [ 1 ] . FillerKind . ShouldBe ( FillerKind . None ) ;
playoutItems [ 1 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
playoutItems [ 2 ] . MediaItemId . ShouldBe ( 1 ) ;
playoutItems [ 2 ] . StartOffset . ShouldBe ( startState . CurrentTime . Add ( new TimeSpan ( 1 , 5 0 , 0 ) ) ) ;
playoutItems [ 2 ] . GuideGroup . ShouldBe ( 3 ) ;
playoutItems [ 2 ] . FillerKind . ShouldBe ( FillerKind . None ) ;
playoutItems [ 2 ] . GuideFinish . HasValue . ShouldBeTrue ( ) ;
playoutItems [ 3 ] . MediaItemId . ShouldBe ( 3 ) ;
playoutItems [ 3 ] . StartOffset . ShouldBe ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 4 5 , 0 ) ) ) ;
playoutItems [ 3 ] . GuideGroup . ShouldBe ( 3 ) ;
playoutItems [ 3 ] . FillerKind . ShouldBe ( FillerKind . Fallback ) ;
playoutItems [ 3 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
}
[Test]
@ -452,56 +452,56 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@@ -452,56 +452,56 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
HardStop ( scheduleItemsEnumerator ) ,
_ cancellationToken ) ;
playoutBuilderState . CurrentTime . Should ( ) . Be ( startState . CurrentTime . AddHours ( 3 ) ) ;
playoutItems . Last ( ) . FinishOffset . Should ( ) . Be ( playoutBuilderState . CurrentTime ) ;
playoutBuilderState . NextGuideGroup . Should ( ) . Be ( 4 ) ;
playoutBuilderState . DurationFinish . IsNone . Should ( ) . BeTrue ( ) ;
playoutBuilderState . InFlood . Should ( ) . BeFalse ( ) ;
playoutBuilderState . MultipleRemaining . IsNone . Should ( ) . BeTrue ( ) ;
playoutBuilderState . InDurationFiller . Should ( ) . BeFalse ( ) ;
playoutBuilderState . ScheduleItemsEnumerator . State . Index . Should ( ) . Be ( 0 ) ;
enumerator1 . State . Index . Should ( ) . Be ( 1 ) ;
enumerator2 . State . Index . Should ( ) . Be ( 1 ) ;
playoutItems . Count . Should ( ) . Be ( 6 ) ;
playoutItems [ 0 ] . MediaItemId . Should ( ) . Be ( 1 ) ;
playoutItems [ 0 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime ) ;
playoutItems [ 0 ] . GuideGroup . Should ( ) . Be ( 1 ) ;
playoutItems [ 0 ] . FillerKind . Should ( ) . Be ( FillerKind . None ) ;
playoutItems [ 0 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutItems [ 1 ] . MediaItemId . Should ( ) . Be ( 2 ) ;
playoutItems [ 1 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime . AddMinutes ( 5 5 ) ) ;
playoutItems [ 1 ] . GuideGroup . Should ( ) . Be ( 2 ) ;
playoutItems [ 1 ] . FillerKind . Should ( ) . Be ( FillerKind . None ) ;
playoutItems [ 1 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutItems [ 2 ] . MediaItemId . Should ( ) . Be ( 1 ) ;
playoutItems [ 2 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime . Add ( new TimeSpan ( 1 , 5 0 , 0 ) ) ) ;
playoutItems [ 2 ] . GuideGroup . Should ( ) . Be ( 3 ) ;
playoutItems [ 2 ] . FillerKind . Should ( ) . Be ( FillerKind . None ) ;
playoutItems [ 2 ] . GuideFinish . HasValue . Should ( ) . BeTrue ( ) ;
playoutItems [ 3 ] . MediaItemId . Should ( ) . Be ( 3 ) ;
playoutItems [ 3 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 4 5 , 0 ) ) ) ;
playoutItems [ 3 ] . GuideGroup . Should ( ) . Be ( 3 ) ;
playoutItems [ 3 ] . FillerKind . Should ( ) . Be ( FillerKind . Tail ) ;
playoutItems [ 3 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutItems [ 4 ] . MediaItemId . Should ( ) . Be ( 4 ) ;
playoutItems [ 4 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 5 0 , 0 ) ) ) ;
playoutItems [ 4 ] . GuideGroup . Should ( ) . Be ( 3 ) ;
playoutItems [ 4 ] . FillerKind . Should ( ) . Be ( FillerKind . Tail ) ;
playoutItems [ 3 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutItems [ 5 ] . MediaItemId . Should ( ) . Be ( 3 ) ;
playoutItems [ 5 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 5 5 , 0 ) ) ) ;
playoutItems [ 5 ] . GuideGroup . Should ( ) . Be ( 3 ) ;
playoutItems [ 5 ] . FillerKind . Should ( ) . Be ( FillerKind . Tail ) ;
playoutItems [ 3 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutBuilderState . CurrentTime . ShouldBe ( startState . CurrentTime . AddHours ( 3 ) ) ;
playoutItems . Last ( ) . FinishOffset . ShouldBe ( playoutBuilderState . CurrentTime ) ;
playoutBuilderState . NextGuideGroup . ShouldBe ( 4 ) ;
playoutBuilderState . DurationFinish . IsNone . ShouldBeTrue ( ) ;
playoutBuilderState . InFlood . ShouldBeFalse ( ) ;
playoutBuilderState . MultipleRemaining . IsNone . ShouldBeTrue ( ) ;
playoutBuilderState . InDurationFiller . ShouldBeFalse ( ) ;
playoutBuilderState . ScheduleItemsEnumerator . State . Index . ShouldBe ( 0 ) ;
enumerator1 . State . Index . ShouldBe ( 1 ) ;
enumerator2 . State . Index . ShouldBe ( 1 ) ;
playoutItems . Count . ShouldBe ( 6 ) ;
playoutItems [ 0 ] . MediaItemId . ShouldBe ( 1 ) ;
playoutItems [ 0 ] . StartOffset . ShouldBe ( startState . CurrentTime ) ;
playoutItems [ 0 ] . GuideGroup . ShouldBe ( 1 ) ;
playoutItems [ 0 ] . FillerKind . ShouldBe ( FillerKind . None ) ;
playoutItems [ 0 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
playoutItems [ 1 ] . MediaItemId . ShouldBe ( 2 ) ;
playoutItems [ 1 ] . StartOffset . ShouldBe ( startState . CurrentTime . AddMinutes ( 5 5 ) ) ;
playoutItems [ 1 ] . GuideGroup . ShouldBe ( 2 ) ;
playoutItems [ 1 ] . FillerKind . ShouldBe ( FillerKind . None ) ;
playoutItems [ 1 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
playoutItems [ 2 ] . MediaItemId . ShouldBe ( 1 ) ;
playoutItems [ 2 ] . StartOffset . ShouldBe ( startState . CurrentTime . Add ( new TimeSpan ( 1 , 5 0 , 0 ) ) ) ;
playoutItems [ 2 ] . GuideGroup . ShouldBe ( 3 ) ;
playoutItems [ 2 ] . FillerKind . ShouldBe ( FillerKind . None ) ;
playoutItems [ 2 ] . GuideFinish . HasValue . ShouldBeTrue ( ) ;
playoutItems [ 3 ] . MediaItemId . ShouldBe ( 3 ) ;
playoutItems [ 3 ] . StartOffset . ShouldBe ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 4 5 , 0 ) ) ) ;
playoutItems [ 3 ] . GuideGroup . ShouldBe ( 3 ) ;
playoutItems [ 3 ] . FillerKind . ShouldBe ( FillerKind . Tail ) ;
playoutItems [ 3 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
playoutItems [ 4 ] . MediaItemId . ShouldBe ( 4 ) ;
playoutItems [ 4 ] . StartOffset . ShouldBe ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 5 0 , 0 ) ) ) ;
playoutItems [ 4 ] . GuideGroup . ShouldBe ( 3 ) ;
playoutItems [ 4 ] . FillerKind . ShouldBe ( FillerKind . Tail ) ;
playoutItems [ 3 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
playoutItems [ 5 ] . MediaItemId . ShouldBe ( 3 ) ;
playoutItems [ 5 ] . StartOffset . ShouldBe ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 5 5 , 0 ) ) ) ;
playoutItems [ 5 ] . GuideGroup . ShouldBe ( 3 ) ;
playoutItems [ 5 ] . FillerKind . ShouldBe ( FillerKind . Tail ) ;
playoutItems [ 3 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
}
[Test]
@ -551,56 +551,56 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@@ -551,56 +551,56 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
HardStop ( scheduleItemsEnumerator ) ,
_ cancellationToken ) ;
playoutBuilderState . CurrentTime . Should ( ) . Be ( startState . CurrentTime . AddHours ( 3 ) ) ;
playoutItems . Last ( ) . FinishOffset . Should ( ) . Be ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 5 7 , 0 ) ) ) ;
playoutBuilderState . NextGuideGroup . Should ( ) . Be ( 4 ) ;
playoutBuilderState . DurationFinish . IsNone . Should ( ) . BeTrue ( ) ;
playoutBuilderState . InFlood . Should ( ) . BeFalse ( ) ;
playoutBuilderState . MultipleRemaining . IsNone . Should ( ) . BeTrue ( ) ;
playoutBuilderState . InDurationFiller . Should ( ) . BeFalse ( ) ;
playoutBuilderState . ScheduleItemsEnumerator . State . Index . Should ( ) . Be ( 0 ) ;
enumerator1 . State . Index . Should ( ) . Be ( 1 ) ;
enumerator2 . State . Index . Should ( ) . Be ( 1 ) ;
playoutItems . Count . Should ( ) . Be ( 6 ) ;
playoutItems [ 0 ] . MediaItemId . Should ( ) . Be ( 1 ) ;
playoutItems [ 0 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime ) ;
playoutItems [ 0 ] . GuideGroup . Should ( ) . Be ( 1 ) ;
playoutItems [ 0 ] . FillerKind . Should ( ) . Be ( FillerKind . None ) ;
playoutItems [ 0 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutItems [ 1 ] . MediaItemId . Should ( ) . Be ( 2 ) ;
playoutItems [ 1 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime . AddMinutes ( 5 5 ) ) ;
playoutItems [ 1 ] . GuideGroup . Should ( ) . Be ( 2 ) ;
playoutItems [ 1 ] . FillerKind . Should ( ) . Be ( FillerKind . None ) ;
playoutItems [ 1 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutItems [ 2 ] . MediaItemId . Should ( ) . Be ( 1 ) ;
playoutItems [ 2 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime . Add ( new TimeSpan ( 1 , 5 0 , 0 ) ) ) ;
playoutItems [ 2 ] . GuideGroup . Should ( ) . Be ( 3 ) ;
playoutItems [ 2 ] . FillerKind . Should ( ) . Be ( FillerKind . None ) ;
playoutItems [ 2 ] . GuideFinish . HasValue . Should ( ) . BeTrue ( ) ;
playoutItems [ 3 ] . MediaItemId . Should ( ) . Be ( 3 ) ;
playoutItems [ 3 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 4 5 , 0 ) ) ) ;
playoutItems [ 3 ] . GuideGroup . Should ( ) . Be ( 3 ) ;
playoutItems [ 3 ] . FillerKind . Should ( ) . Be ( FillerKind . Tail ) ;
playoutItems [ 3 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutItems [ 4 ] . MediaItemId . Should ( ) . Be ( 4 ) ;
playoutItems [ 4 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 4 9 , 0 ) ) ) ;
playoutItems [ 4 ] . GuideGroup . Should ( ) . Be ( 3 ) ;
playoutItems [ 4 ] . FillerKind . Should ( ) . Be ( FillerKind . Tail ) ;
playoutItems [ 4 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutItems [ 5 ] . MediaItemId . Should ( ) . Be ( 3 ) ;
playoutItems [ 5 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 5 3 , 0 ) ) ) ;
playoutItems [ 5 ] . GuideGroup . Should ( ) . Be ( 3 ) ;
playoutItems [ 5 ] . FillerKind . Should ( ) . Be ( FillerKind . Tail ) ;
playoutItems [ 5 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutBuilderState . CurrentTime . ShouldBe ( startState . CurrentTime . AddHours ( 3 ) ) ;
playoutItems . Last ( ) . FinishOffset . ShouldBe ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 5 7 , 0 ) ) ) ;
playoutBuilderState . NextGuideGroup . ShouldBe ( 4 ) ;
playoutBuilderState . DurationFinish . IsNone . ShouldBeTrue ( ) ;
playoutBuilderState . InFlood . ShouldBeFalse ( ) ;
playoutBuilderState . MultipleRemaining . IsNone . ShouldBeTrue ( ) ;
playoutBuilderState . InDurationFiller . ShouldBeFalse ( ) ;
playoutBuilderState . ScheduleItemsEnumerator . State . Index . ShouldBe ( 0 ) ;
enumerator1 . State . Index . ShouldBe ( 1 ) ;
enumerator2 . State . Index . ShouldBe ( 1 ) ;
playoutItems . Count . ShouldBe ( 6 ) ;
playoutItems [ 0 ] . MediaItemId . ShouldBe ( 1 ) ;
playoutItems [ 0 ] . StartOffset . ShouldBe ( startState . CurrentTime ) ;
playoutItems [ 0 ] . GuideGroup . ShouldBe ( 1 ) ;
playoutItems [ 0 ] . FillerKind . ShouldBe ( FillerKind . None ) ;
playoutItems [ 0 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
playoutItems [ 1 ] . MediaItemId . ShouldBe ( 2 ) ;
playoutItems [ 1 ] . StartOffset . ShouldBe ( startState . CurrentTime . AddMinutes ( 5 5 ) ) ;
playoutItems [ 1 ] . GuideGroup . ShouldBe ( 2 ) ;
playoutItems [ 1 ] . FillerKind . ShouldBe ( FillerKind . None ) ;
playoutItems [ 1 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
playoutItems [ 2 ] . MediaItemId . ShouldBe ( 1 ) ;
playoutItems [ 2 ] . StartOffset . ShouldBe ( startState . CurrentTime . Add ( new TimeSpan ( 1 , 5 0 , 0 ) ) ) ;
playoutItems [ 2 ] . GuideGroup . ShouldBe ( 3 ) ;
playoutItems [ 2 ] . FillerKind . ShouldBe ( FillerKind . None ) ;
playoutItems [ 2 ] . GuideFinish . HasValue . ShouldBeTrue ( ) ;
playoutItems [ 3 ] . MediaItemId . ShouldBe ( 3 ) ;
playoutItems [ 3 ] . StartOffset . ShouldBe ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 4 5 , 0 ) ) ) ;
playoutItems [ 3 ] . GuideGroup . ShouldBe ( 3 ) ;
playoutItems [ 3 ] . FillerKind . ShouldBe ( FillerKind . Tail ) ;
playoutItems [ 3 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
playoutItems [ 4 ] . MediaItemId . ShouldBe ( 4 ) ;
playoutItems [ 4 ] . StartOffset . ShouldBe ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 4 9 , 0 ) ) ) ;
playoutItems [ 4 ] . GuideGroup . ShouldBe ( 3 ) ;
playoutItems [ 4 ] . FillerKind . ShouldBe ( FillerKind . Tail ) ;
playoutItems [ 4 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
playoutItems [ 5 ] . MediaItemId . ShouldBe ( 3 ) ;
playoutItems [ 5 ] . StartOffset . ShouldBe ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 5 3 , 0 ) ) ) ;
playoutItems [ 5 ] . GuideGroup . ShouldBe ( 3 ) ;
playoutItems [ 5 ] . FillerKind . ShouldBe ( FillerKind . Tail ) ;
playoutItems [ 5 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
}
[Test]
@ -667,63 +667,63 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@@ -667,63 +667,63 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
HardStop ( scheduleItemsEnumerator ) ,
_ cancellationToken ) ;
playoutBuilderState . CurrentTime . Should ( ) . Be ( startState . CurrentTime . AddHours ( 3 ) ) ;
playoutItems . Last ( ) . FinishOffset . Should ( ) . Be ( playoutBuilderState . CurrentTime ) ;
playoutBuilderState . NextGuideGroup . Should ( ) . Be ( 4 ) ;
playoutBuilderState . DurationFinish . IsNone . Should ( ) . BeTrue ( ) ;
playoutBuilderState . InFlood . Should ( ) . BeFalse ( ) ;
playoutBuilderState . MultipleRemaining . IsNone . Should ( ) . BeTrue ( ) ;
playoutBuilderState . InDurationFiller . Should ( ) . BeFalse ( ) ;
playoutBuilderState . ScheduleItemsEnumerator . State . Index . Should ( ) . Be ( 0 ) ;
enumerator1 . State . Index . Should ( ) . Be ( 1 ) ;
enumerator2 . State . Index . Should ( ) . Be ( 1 ) ;
enumerator3 . State . Index . Should ( ) . Be ( 1 ) ;
playoutItems . Count . Should ( ) . Be ( 7 ) ;
playoutItems [ 0 ] . MediaItemId . Should ( ) . Be ( 1 ) ;
playoutItems [ 0 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime ) ;
playoutItems [ 0 ] . GuideGroup . Should ( ) . Be ( 1 ) ;
playoutItems [ 0 ] . FillerKind . Should ( ) . Be ( FillerKind . None ) ;
playoutItems [ 0 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutItems [ 1 ] . MediaItemId . Should ( ) . Be ( 2 ) ;
playoutItems [ 1 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime . AddMinutes ( 5 5 ) ) ;
playoutItems [ 1 ] . GuideGroup . Should ( ) . Be ( 2 ) ;
playoutItems [ 1 ] . FillerKind . Should ( ) . Be ( FillerKind . None ) ;
playoutItems [ 1 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutItems [ 2 ] . MediaItemId . Should ( ) . Be ( 1 ) ;
playoutItems [ 2 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime . Add ( new TimeSpan ( 1 , 5 0 , 0 ) ) ) ;
playoutItems [ 2 ] . GuideGroup . Should ( ) . Be ( 3 ) ;
playoutItems [ 2 ] . FillerKind . Should ( ) . Be ( FillerKind . None ) ;
playoutItems [ 2 ] . GuideFinish . HasValue . Should ( ) . BeTrue ( ) ;
playoutItems [ 3 ] . MediaItemId . Should ( ) . Be ( 3 ) ;
playoutItems [ 3 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 4 5 , 0 ) ) ) ;
playoutItems [ 3 ] . GuideGroup . Should ( ) . Be ( 3 ) ;
playoutItems [ 3 ] . FillerKind . Should ( ) . Be ( FillerKind . Tail ) ;
playoutItems [ 3 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutItems [ 4 ] . MediaItemId . Should ( ) . Be ( 4 ) ;
playoutItems [ 4 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 4 9 , 0 ) ) ) ;
playoutItems [ 4 ] . GuideGroup . Should ( ) . Be ( 3 ) ;
playoutItems [ 4 ] . FillerKind . Should ( ) . Be ( FillerKind . Tail ) ;
playoutItems [ 4 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutItems [ 5 ] . MediaItemId . Should ( ) . Be ( 3 ) ;
playoutItems [ 5 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 5 3 , 0 ) ) ) ;
playoutItems [ 5 ] . GuideGroup . Should ( ) . Be ( 3 ) ;
playoutItems [ 5 ] . FillerKind . Should ( ) . Be ( FillerKind . Tail ) ;
playoutItems [ 5 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutItems [ 6 ] . MediaItemId . Should ( ) . Be ( 5 ) ;
playoutItems [ 6 ] . StartOffset . Should ( ) . Be ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 5 7 , 0 ) ) ) ;
playoutItems [ 6 ] . GuideGroup . Should ( ) . Be ( 3 ) ;
playoutItems [ 6 ] . FillerKind . Should ( ) . Be ( FillerKind . Fallback ) ;
playoutItems [ 6 ] . GuideFinish . HasValue . Should ( ) . BeFalse ( ) ;
playoutBuilderState . CurrentTime . ShouldBe ( startState . CurrentTime . AddHours ( 3 ) ) ;
playoutItems . Last ( ) . FinishOffset . ShouldBe ( playoutBuilderState . CurrentTime ) ;
playoutBuilderState . NextGuideGroup . ShouldBe ( 4 ) ;
playoutBuilderState . DurationFinish . IsNone . ShouldBeTrue ( ) ;
playoutBuilderState . InFlood . ShouldBeFalse ( ) ;
playoutBuilderState . MultipleRemaining . IsNone . ShouldBeTrue ( ) ;
playoutBuilderState . InDurationFiller . ShouldBeFalse ( ) ;
playoutBuilderState . ScheduleItemsEnumerator . State . Index . ShouldBe ( 0 ) ;
enumerator1 . State . Index . ShouldBe ( 1 ) ;
enumerator2 . State . Index . ShouldBe ( 1 ) ;
enumerator3 . State . Index . ShouldBe ( 1 ) ;
playoutItems . Count . ShouldBe ( 7 ) ;
playoutItems [ 0 ] . MediaItemId . ShouldBe ( 1 ) ;
playoutItems [ 0 ] . StartOffset . ShouldBe ( startState . CurrentTime ) ;
playoutItems [ 0 ] . GuideGroup . ShouldBe ( 1 ) ;
playoutItems [ 0 ] . FillerKind . ShouldBe ( FillerKind . None ) ;
playoutItems [ 0 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
playoutItems [ 1 ] . MediaItemId . ShouldBe ( 2 ) ;
playoutItems [ 1 ] . StartOffset . ShouldBe ( startState . CurrentTime . AddMinutes ( 5 5 ) ) ;
playoutItems [ 1 ] . GuideGroup . ShouldBe ( 2 ) ;
playoutItems [ 1 ] . FillerKind . ShouldBe ( FillerKind . None ) ;
playoutItems [ 1 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
playoutItems [ 2 ] . MediaItemId . ShouldBe ( 1 ) ;
playoutItems [ 2 ] . StartOffset . ShouldBe ( startState . CurrentTime . Add ( new TimeSpan ( 1 , 5 0 , 0 ) ) ) ;
playoutItems [ 2 ] . GuideGroup . ShouldBe ( 3 ) ;
playoutItems [ 2 ] . FillerKind . ShouldBe ( FillerKind . None ) ;
playoutItems [ 2 ] . GuideFinish . HasValue . ShouldBeTrue ( ) ;
playoutItems [ 3 ] . MediaItemId . ShouldBe ( 3 ) ;
playoutItems [ 3 ] . StartOffset . ShouldBe ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 4 5 , 0 ) ) ) ;
playoutItems [ 3 ] . GuideGroup . ShouldBe ( 3 ) ;
playoutItems [ 3 ] . FillerKind . ShouldBe ( FillerKind . Tail ) ;
playoutItems [ 3 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
playoutItems [ 4 ] . MediaItemId . ShouldBe ( 4 ) ;
playoutItems [ 4 ] . StartOffset . ShouldBe ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 4 9 , 0 ) ) ) ;
playoutItems [ 4 ] . GuideGroup . ShouldBe ( 3 ) ;
playoutItems [ 4 ] . FillerKind . ShouldBe ( FillerKind . Tail ) ;
playoutItems [ 4 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
playoutItems [ 5 ] . MediaItemId . ShouldBe ( 3 ) ;
playoutItems [ 5 ] . StartOffset . ShouldBe ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 5 3 , 0 ) ) ) ;
playoutItems [ 5 ] . GuideGroup . ShouldBe ( 3 ) ;
playoutItems [ 5 ] . FillerKind . ShouldBe ( FillerKind . Tail ) ;
playoutItems [ 5 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
playoutItems [ 6 ] . MediaItemId . ShouldBe ( 5 ) ;
playoutItems [ 6 ] . StartOffset . ShouldBe ( startState . CurrentTime . Add ( new TimeSpan ( 2 , 5 7 , 0 ) ) ) ;
playoutItems [ 6 ] . GuideGroup . ShouldBe ( 3 ) ;
playoutItems [ 6 ] . FillerKind . ShouldBe ( FillerKind . Fallback ) ;
playoutItems [ 6 ] . GuideFinish . HasValue . ShouldBeFalse ( ) ;
}
[Test]
@ -818,25 +818,25 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@@ -818,25 +818,25 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
HardStop ( scheduleItemsEnumerator ) ,
_ cancellationToken ) ;
playoutBuilderState . CurrentTime . Should ( ) . Be ( startState . CurrentTime . AddMinutes ( 3 0 ) ) ;
playoutItems . Last ( ) . FinishOffset . Should ( ) . Be ( playoutBuilderState . CurrentTime ) ;
playoutBuilderState . CurrentTime . ShouldBe ( startState . CurrentTime . AddMinutes ( 3 0 ) ) ;
playoutItems . Last ( ) . FinishOffset . ShouldBe ( playoutBuilderState . CurrentTime ) ;
// THIS IS THE KEY TEST - needs to be exactly 30 minutes
( playoutItems . Last ( ) . FinishOffset - playoutItems . First ( ) . StartOffset ) . Should ( ) . Be ( TimeSpan . FromMinutes ( 3 0 ) ) ;
( playoutItems . Last ( ) . FinishOffset - playoutItems . First ( ) . StartOffset ) . ShouldBe ( TimeSpan . FromMinutes ( 3 0 ) ) ;
// playoutBuilderState.NextGuideGroup.Should(). Be(3);
playoutBuilderState . DurationFinish . IsNone . Should ( ) . BeTrue ( ) ;
playoutBuilderState . InFlood . Should ( ) . BeFalse ( ) ;
playoutBuilderState . MultipleRemaining . IsNone . Should ( ) . BeTrue ( ) ;
playoutBuilderState . InDurationFiller . Should ( ) . BeFalse ( ) ;
playoutBuilderState . ScheduleItemsEnumerator . State . Index . Should ( ) . Be ( 0 ) ;
// playoutBuilderState.NextGuideGroup.ShouldBe(3);
playoutBuilderState . DurationFinish . IsNone . ShouldBeTrue ( ) ;
playoutBuilderState . InFlood . ShouldBeFalse ( ) ;
playoutBuilderState . MultipleRemaining . IsNone . ShouldBeTrue ( ) ;
playoutBuilderState . InDurationFiller . ShouldBeFalse ( ) ;
playoutBuilderState . ScheduleItemsEnumerator . State . Index . ShouldBe ( 0 ) ;
enumerator1 . State . Index . Should ( ) . Be ( 1 ) ;
enumerator2 . State . Index . Should ( ) . Be ( 1 ) ;
enumerator3 . State . Index . Should ( ) . Be ( 0 ) ;
enumerator4 . State . Index . Should ( ) . Be ( 1 ) ;
enumerator1 . State . Index . ShouldBe ( 1 ) ;
enumerator2 . State . Index . ShouldBe ( 1 ) ;
enumerator3 . State . Index . ShouldBe ( 0 ) ;
enumerator4 . State . Index . ShouldBe ( 1 ) ;
playoutItems . Count . Should ( ) . Be ( 1 2 ) ;
playoutItems . Count . ShouldBe ( 1 2 ) ;
}
[Test]
@ -882,17 +882,17 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
@@ -882,17 +882,17 @@ public class PlayoutModeSchedulerDurationTests : SchedulerTestBase
HardStop ( scheduleItemsEnumerator ) ,
_ cancellationToken ) ;
playoutItems . Should ( ) . BeEmpty ( ) ;
playoutItems . ShouldBeEmpty ( ) ;
playoutBuilderState . CurrentTime . Should ( ) . Be ( HardStop ( scheduleItemsEnumerator ) ) ;
playoutBuilderState . CurrentTime . ShouldBe ( HardStop ( scheduleItemsEnumerator ) ) ;
playoutBuilderState . NextGuideGroup . Should ( ) . Be ( 1 ) ;
playoutBuilderState . DurationFinish . IsNone . Should ( ) . BeTrue ( ) ;
playoutBuilderState . InFlood . Should ( ) . BeFalse ( ) ;
playoutBuilderState . MultipleRemaining . IsNone . Should ( ) . BeTrue ( ) ;
playoutBuilderState . InDurationFiller . Should ( ) . BeFalse ( ) ;
playoutBuilderState . ScheduleItemsEnumerator . State . Index . Should ( ) . Be ( 0 ) ;
playoutBuilderState . NextGuideGroup . ShouldBe ( 1 ) ;
playoutBuilderState . DurationFinish . IsNone . ShouldBeTrue ( ) ;
playoutBuilderState . InFlood . ShouldBeFalse ( ) ;
playoutBuilderState . MultipleRemaining . IsNone . ShouldBeTrue ( ) ;
playoutBuilderState . InDurationFiller . ShouldBeFalse ( ) ;
playoutBuilderState . ScheduleItemsEnumerator . State . Index . ShouldBe ( 0 ) ;
enumerator . State . Index . Should ( ) . Be ( 0 ) ;
enumerator . State . Index . ShouldBe ( 0 ) ;
}
}