Stream custom live channels using your own media
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

65 lines
1.9 KiB

using ErsatzTV.Core.Domain;
using ErsatzTV.Core.Scheduling;
using Microsoft.Extensions.Logging;
using NUnit.Framework;
using Shouldly;
namespace ErsatzTV.Core.Tests.Scheduling.ClassicScheduling;
public class GetStartTimeAfterTests
{
[Test]
[Ignore("This test isn't ready to run yet")]
public void Should_Return_Correct_Time_On_Dst_Fall_Back()
{
var scheduleItem = new ProgramScheduleItemOne
{
StartTime = TimeSpan.FromHours(3)
};
var state = new PlayoutBuilderState(
0,
null,
Option<int>.None,
Option<DateTimeOffset>.None,
false,
false,
0,
DateTimeOffset.Parse("2025-11-02T00:00:00-05:00"));
DateTimeOffset result =
PlayoutModeSchedulerBase<ProgramScheduleItem>.GetStartTimeAfter(state, scheduleItem, Option<ILogger>.None);
result.ShouldBe(DateTimeOffset.Parse("2025-11-02T02:00:00-06:00"));
}
[Test]
public void Should_Return_Current_Time_With_Flexible_Fixed_Start()
{
// 12:05 am
var scheduleItem = new ProgramScheduleItemOne
{
StartTime = TimeSpan.FromMinutes(5),
FixedStartTimeBehavior = null,
ProgramSchedule = new ProgramSchedule
{
FixedStartTimeBehavior = FixedStartTimeBehavior.Flexible
}
};
var state = new PlayoutBuilderState(
0,
null,
Option<int>.None,
Option<DateTimeOffset>.None,
false,
false,
0,
DateTimeOffset.Parse("2025-08-29T00:10:00-05:00"));
DateTimeOffset result =
PlayoutModeSchedulerBase<ProgramScheduleItem>.GetStartTimeAfter(state, scheduleItem, Option<ILogger>.None);
result.ShouldBe(DateTimeOffset.Parse("2025-08-29T00:10:00-05:00"));
}
}