BaseItemManagerTests.cs 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using System;
  2. using MediaBrowser.Controller.BaseItemManager;
  3. using MediaBrowser.Controller.Configuration;
  4. using MediaBrowser.Controller.Entities;
  5. using MediaBrowser.Controller.Entities.Audio;
  6. using MediaBrowser.Model.Configuration;
  7. using Moq;
  8. using Xunit;
  9. namespace Jellyfin.Controller.Tests
  10. {
  11. public class BaseItemManagerTests
  12. {
  13. [Theory]
  14. [InlineData(typeof(Book), "LibraryEnabled", true)]
  15. [InlineData(typeof(Book), "LibraryDisabled", false)]
  16. [InlineData(typeof(MusicArtist), "Enabled", true)]
  17. [InlineData(typeof(MusicArtist), "ServerDisabled", false)]
  18. public void IsMetadataFetcherEnabled_ChecksOptions_ReturnsExpected(Type itemType, string fetcherName, bool expected)
  19. {
  20. BaseItem item = (BaseItem)Activator.CreateInstance(itemType)!;
  21. var libraryOptions = new LibraryOptions
  22. {
  23. TypeOptions = new[]
  24. {
  25. new TypeOptions
  26. {
  27. Type = "Book",
  28. MetadataFetchers = new[] { "LibraryEnabled" }
  29. }
  30. }
  31. };
  32. var serverConfiguration = new ServerConfiguration();
  33. foreach (var typeConfig in serverConfiguration.MetadataOptions)
  34. {
  35. typeConfig.DisabledMetadataFetchers = new[] { "ServerDisabled" };
  36. }
  37. var serverConfigurationManager = new Mock<IServerConfigurationManager>();
  38. serverConfigurationManager.Setup(scm => scm.Configuration)
  39. .Returns(serverConfiguration);
  40. var baseItemManager = new BaseItemManager(serverConfigurationManager.Object);
  41. var actual = baseItemManager.IsMetadataFetcherEnabled(item, libraryOptions, fetcherName);
  42. Assert.Equal(expected, actual);
  43. }
  44. [Theory]
  45. [InlineData(typeof(Book), "LibraryEnabled", true)]
  46. [InlineData(typeof(Book), "LibraryDisabled", false)]
  47. [InlineData(typeof(MusicArtist), "Enabled", true)]
  48. [InlineData(typeof(MusicArtist), "ServerDisabled", false)]
  49. public void IsImageFetcherEnabled_ChecksOptions_ReturnsExpected(Type itemType, string fetcherName, bool expected)
  50. {
  51. BaseItem item = (BaseItem)Activator.CreateInstance(itemType)!;
  52. var libraryOptions = new LibraryOptions
  53. {
  54. TypeOptions = new[]
  55. {
  56. new TypeOptions
  57. {
  58. Type = "Book",
  59. ImageFetchers = new[] { "LibraryEnabled" }
  60. }
  61. }
  62. };
  63. var serverConfiguration = new ServerConfiguration();
  64. foreach (var typeConfig in serverConfiguration.MetadataOptions)
  65. {
  66. typeConfig.DisabledImageFetchers = new[] { "ServerDisabled" };
  67. }
  68. var serverConfigurationManager = new Mock<IServerConfigurationManager>();
  69. serverConfigurationManager.Setup(scm => scm.Configuration)
  70. .Returns(serverConfiguration);
  71. var baseItemManager = new BaseItemManager(serverConfigurationManager.Object);
  72. var actual = baseItemManager.IsImageFetcherEnabled(item, libraryOptions, fetcherName);
  73. Assert.Equal(expected, actual);
  74. }
  75. }
  76. }