2
0

MediaStreamTests.cs 5.4 KB

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