ContainerHelperTests.cs 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using System;
  2. using MediaBrowser.Model.Dlna;
  3. using MediaBrowser.Model.Extensions;
  4. using Xunit;
  5. namespace Jellyfin.Model.Tests.Dlna;
  6. public class ContainerHelperTests
  7. {
  8. private readonly ContainerProfile _emptyContainerProfile = new ContainerProfile();
  9. [Theory]
  10. [InlineData(null)]
  11. [InlineData("")]
  12. [InlineData("mp4")]
  13. public void ContainsContainer_EmptyContainerProfile_ReturnsTrue(string? containers)
  14. {
  15. Assert.True(_emptyContainerProfile.ContainsContainer(containers));
  16. }
  17. [Theory]
  18. [InlineData("mp3,mpeg", "mp3")]
  19. [InlineData("mp3,mpeg,avi", "mp3,avi")]
  20. [InlineData("-mp3,mpeg", "avi")]
  21. [InlineData("-mp3,mpeg,avi", "mp4,jpg")]
  22. public void ContainsContainer_InList_ReturnsTrue(string container, string? extension)
  23. {
  24. Assert.True(ContainerHelper.ContainsContainer(container, extension));
  25. }
  26. [Theory]
  27. [InlineData("mp3,mpeg", "avi")]
  28. [InlineData("mp3,mpeg,avi", "mp4,jpg")]
  29. [InlineData("mp3,mpeg", null)]
  30. [InlineData("mp3,mpeg", "")]
  31. [InlineData("-mp3,mpeg", "mp3")]
  32. [InlineData("-mp3,mpeg,avi", "mpeg,avi")]
  33. [InlineData(",mp3,", ",avi,")] // Empty values should be discarded
  34. [InlineData("-,mp3,", ",mp3,")] // Empty values should be discarded
  35. public void ContainsContainer_NotInList_ReturnsFalse(string container, string? extension)
  36. {
  37. Assert.False(ContainerHelper.ContainsContainer(container, extension));
  38. if (extension is not null)
  39. {
  40. Assert.False(ContainerHelper.ContainsContainer(container, extension.AsSpan()));
  41. }
  42. }
  43. [Theory]
  44. [InlineData("mp3,mpeg", "mp3")]
  45. [InlineData("mp3,mpeg,avi", "mp3,avi")]
  46. [InlineData("-mp3,mpeg", "avi")]
  47. [InlineData("-mp3,mpeg,avi", "mp4,jpg")]
  48. public void ContainsContainer_InList_ReturnsTrue_SpanVersion(string container, string? extension)
  49. {
  50. Assert.True(ContainerHelper.ContainsContainer(container, extension.AsSpan()));
  51. }
  52. [Theory]
  53. [InlineData(new string[] { "mp3", "mpeg" }, false, "mpeg")]
  54. [InlineData(new string[] { "mp3", "mpeg", "avi" }, false, "avi")]
  55. [InlineData(new string[] { "mp3", "", "avi" }, false, "mp3")]
  56. [InlineData(new string[] { "mp3", "mpeg" }, true, "avi")]
  57. [InlineData(new string[] { "mp3", "mpeg", "avi" }, true, "mkv")]
  58. [InlineData(new string[] { "mp3", "", "avi" }, true, "")]
  59. public void ContainsContainer_ThreeArgs_InList_ReturnsTrue(string[] containers, bool isNegativeList, string inputContainer)
  60. {
  61. Assert.True(ContainerHelper.ContainsContainer(containers, isNegativeList, inputContainer));
  62. }
  63. [Theory]
  64. [InlineData(new string[] { "mp3", "mpeg" }, false, "avi")]
  65. [InlineData(new string[] { "mp3", "mpeg", "avi" }, false, "mkv")]
  66. [InlineData(new string[] { "mp3", "", "avi" }, false, "")]
  67. [InlineData(new string[] { "mp3", "mpeg" }, true, "mpeg")]
  68. [InlineData(new string[] { "mp3", "mpeg", "avi" }, true, "mp3")]
  69. [InlineData(new string[] { "mp3", "", "avi" }, true, "avi")]
  70. public void ContainsContainer_ThreeArgs_InList_ReturnsFalse(string[] containers, bool isNegativeList, string inputContainer)
  71. {
  72. Assert.False(ContainerHelper.ContainsContainer(containers, isNegativeList, inputContainer));
  73. }
  74. }