DynamicHlsControllerTests.cs 1.5 KB

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