MediaStreamTests.cs 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. using MediaBrowser.Model.Entities;
  2. using Xunit;
  3. namespace Jellyfin.Model.Tests.Entities
  4. {
  5. public class MediaStreamTests
  6. {
  7. public static TheoryData<MediaStream, string> Get_DisplayTitle_TestData()
  8. {
  9. var data = new TheoryData<MediaStream, string>();
  10. data.Add(
  11. new MediaStream
  12. {
  13. Type = MediaStreamType.Subtitle,
  14. Title = "English",
  15. Language = string.Empty,
  16. IsForced = false,
  17. IsDefault = false,
  18. Codec = "ASS"
  19. },
  20. "English - Und - ASS");
  21. data.Add(
  22. new MediaStream
  23. {
  24. Type = MediaStreamType.Subtitle,
  25. Title = "English",
  26. Language = string.Empty,
  27. IsForced = false,
  28. IsDefault = false,
  29. Codec = string.Empty
  30. },
  31. "English - Und");
  32. data.Add(
  33. new MediaStream
  34. {
  35. Type = MediaStreamType.Subtitle,
  36. Title = "English",
  37. Language = "EN",
  38. IsForced = false,
  39. IsDefault = false,
  40. Codec = string.Empty
  41. },
  42. "English");
  43. data.Add(
  44. new MediaStream
  45. {
  46. Type = MediaStreamType.Subtitle,
  47. Title = "English",
  48. Language = "EN",
  49. IsForced = true,
  50. IsDefault = true,
  51. Codec = "SRT"
  52. },
  53. "English - Default - Forced - SRT");
  54. data.Add(
  55. new MediaStream
  56. {
  57. Type = MediaStreamType.Subtitle,
  58. Title = null,
  59. Language = null,
  60. IsForced = false,
  61. IsDefault = false,
  62. Codec = null
  63. },
  64. "Und");
  65. return data;
  66. }
  67. [Theory]
  68. [MemberData(nameof(Get_DisplayTitle_TestData))]
  69. public void Get_DisplayTitle_should_return_valid_title(MediaStream mediaStream, string expected)
  70. {
  71. Assert.Equal(expected, mediaStream.DisplayTitle);
  72. }
  73. [Theory]
  74. [InlineData(null, null, false, null)]
  75. [InlineData(null, 0, false, null)]
  76. [InlineData(0, null, false, null)]
  77. [InlineData(640, 480, false, "480p")]
  78. [InlineData(640, 480, true, "480i")]
  79. [InlineData(720, 576, false, "576p")]
  80. [InlineData(720, 576, true, "576i")]
  81. [InlineData(960, 540, false, "540p")]
  82. [InlineData(960, 540, true, "540i")]
  83. [InlineData(1280, 720, false, "720p")]
  84. [InlineData(1280, 720, true, "720i")]
  85. [InlineData(1920, 1080, false, "1080p")]
  86. [InlineData(1920, 1080, true, "1080i")]
  87. [InlineData(4096, 3072, false, "4K")]
  88. [InlineData(8192, 6144, false, "8K")]
  89. [InlineData(512, 384, false, "480p")]
  90. [InlineData(576, 336, false, "480p")]
  91. [InlineData(624, 352, false, "480p")]
  92. [InlineData(640, 352, false, "480p")]
  93. [InlineData(704, 396, false, "480p")]
  94. [InlineData(720, 404, false, "480p")]
  95. [InlineData(720, 480, false, "480p")]
  96. [InlineData(768, 576, false, "576p")]
  97. [InlineData(960, 720, false, "720p")]
  98. [InlineData(1280, 528, false, "720p")]
  99. [InlineData(1280, 532, false, "720p")]
  100. [InlineData(1280, 534, false, "720p")]
  101. [InlineData(1280, 536, false, "720p")]
  102. [InlineData(1280, 544, false, "720p")]
  103. [InlineData(1280, 690, false, "720p")]
  104. [InlineData(1280, 694, false, "720p")]
  105. [InlineData(1280, 696, false, "720p")]
  106. [InlineData(1280, 716, false, "720p")]
  107. [InlineData(1280, 718, false, "720p")]
  108. [InlineData(1912, 792, false, "1080p")]
  109. [InlineData(1916, 1076, false, "1080p")]
  110. [InlineData(1918, 1080, false, "1080p")]
  111. [InlineData(1920, 796, false, "1080p")]
  112. [InlineData(1920, 800, false, "1080p")]
  113. [InlineData(1920, 802, false, "1080p")]
  114. [InlineData(1920, 804, false, "1080p")]
  115. [InlineData(1920, 808, false, "1080p")]
  116. [InlineData(1920, 816, false, "1080p")]
  117. [InlineData(1920, 856, false, "1080p")]
  118. [InlineData(1920, 960, false, "1080p")]
  119. [InlineData(1920, 1024, false, "1080p")]
  120. [InlineData(1920, 1040, false, "1080p")]
  121. [InlineData(1920, 1072, false, "1080p")]
  122. [InlineData(1440, 1072, false, "1080p")]
  123. [InlineData(1440, 1080, false, "1080p")]
  124. [InlineData(3840, 1600, false, "4K")]
  125. [InlineData(3840, 1606, false, "4K")]
  126. [InlineData(3840, 1608, false, "4K")]
  127. [InlineData(3840, 2160, false, "4K")]
  128. [InlineData(7680, 4320, false, "8K")]
  129. public void GetResolutionText_Valid(int? width, int? height, bool interlaced, string expected)
  130. {
  131. var mediaStream = new MediaStream()
  132. {
  133. Width = width,
  134. Height = height,
  135. IsInterlaced = interlaced
  136. };
  137. Assert.Equal(expected, mediaStream.GetResolutionText());
  138. }
  139. }
  140. }