diff options
Diffstat (limited to 'tests/Jellyfin.Api.Tests/Controllers/DynamicHlsControllerTests.cs')
| -rw-r--r-- | tests/Jellyfin.Api.Tests/Controllers/DynamicHlsControllerTests.cs | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/Jellyfin.Api.Tests/Controllers/DynamicHlsControllerTests.cs b/tests/Jellyfin.Api.Tests/Controllers/DynamicHlsControllerTests.cs new file mode 100644 index 000000000..1f06e8fde --- /dev/null +++ b/tests/Jellyfin.Api.Tests/Controllers/DynamicHlsControllerTests.cs @@ -0,0 +1,45 @@ +using System; +using Jellyfin.Api.Controllers; +using Xunit; + +namespace Jellyfin.Api.Tests.Controllers +{ + public class DynamicHlsControllerTests + { + [Theory] + [MemberData(nameof(GetSegmentLengths_Success_TestData))] + public void GetSegmentLengths_Success(long runtimeTicks, int segmentlength, double[] expected) + { + var res = DynamicHlsController.GetSegmentLengthsInternal(runtimeTicks, segmentlength); + Assert.Equal(expected.Length, res.Length); + for (int i = 0; i < expected.Length; i++) + { + Assert.Equal(expected[i], res[i]); + } + } + + public static TheoryData<long, int, double[]> GetSegmentLengths_Success_TestData() + { + var data = new TheoryData<long, int, double[]>(); + data.Add(0, 6, Array.Empty<double>()); + data.Add( + TimeSpan.FromSeconds(3).Ticks, + 6, + new double[] { 3 }); + data.Add( + TimeSpan.FromSeconds(6).Ticks, + 6, + new double[] { 6 }); + data.Add( + TimeSpan.FromSeconds(3.3333333).Ticks, + 6, + new double[] { 3.3333333 }); + data.Add( + TimeSpan.FromSeconds(9.3333333).Ticks, + 6, + new double[] { 6, 3.3333333 }); + + return data; + } + } +} |
