MediaStreamTests.cs 5.7 KB

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