DynamicHlsControllerTests.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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 TheoryData<long, int, double[]> GetSegmentLengths_Success_TestData()
  21. {
  22. var data = new TheoryData<long, int, double[]>();
  23. data.Add(0, 6, Array.Empty<double>());
  24. data.Add(
  25. TimeSpan.FromSeconds(3).Ticks,
  26. 6,
  27. new double[] { 3 });
  28. data.Add(
  29. TimeSpan.FromSeconds(6).Ticks,
  30. 6,
  31. new double[] { 6 });
  32. data.Add(
  33. TimeSpan.FromSeconds(3.3333333).Ticks,
  34. 6,
  35. new double[] { 3.3333333 });
  36. data.Add(
  37. TimeSpan.FromSeconds(9.3333333).Ticks,
  38. 6,
  39. new double[] { 6, 3.3333333 });
  40. return data;
  41. }
  42. }
  43. }