DynamicHlsControllerTests.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System;
  2. using Jellyfin.Api.Controllers;
  3. using Xunit;
  4. namespace Jellyfin.Api.Tests.Controllers
  5. {
  6. public class DynamicHlsControllerTests
  7. {
  8. [Theory]
  9. [MemberData(nameof(GetSegmentLengths_Success_TestData))]
  10. public void GetSegmentLengths_Success(long runtimeTicks, int segmentlength, double[] expected)
  11. {
  12. var res = DynamicHlsController.GetSegmentLengthsInternal(runtimeTicks, segmentlength);
  13. Assert.Equal(expected.Length, res.Length);
  14. for (int i = 0; i < expected.Length; i++)
  15. {
  16. Assert.Equal(expected[i], res[i]);
  17. }
  18. }
  19. public static TheoryData<long, int, double[]> GetSegmentLengths_Success_TestData()
  20. {
  21. var data = new TheoryData<long, int, double[]>();
  22. data.Add(0, 6, Array.Empty<double>());
  23. data.Add(
  24. TimeSpan.FromSeconds(3).Ticks,
  25. 6,
  26. new double[] { 3 });
  27. data.Add(
  28. TimeSpan.FromSeconds(6).Ticks,
  29. 6,
  30. new double[] { 6 });
  31. data.Add(
  32. TimeSpan.FromSeconds(3.3333333).Ticks,
  33. 6,
  34. new double[] { 3.3333333 });
  35. data.Add(
  36. TimeSpan.FromSeconds(9.3333333).Ticks,
  37. 6,
  38. new double[] { 6, 3.3333333 });
  39. return data;
  40. }
  41. }
  42. }