BaseItemManagerTests.cs 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  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 libraryTypeOptions = itemType == typeof(Book)
  22. ? new TypeOptions
  23. {
  24. Type = "Book",
  25. MetadataFetchers = new[] { "LibraryEnabled" }
  26. }
  27. : null;
  28. var serverConfiguration = new ServerConfiguration();
  29. foreach (var typeConfig in serverConfiguration.MetadataOptions)
  30. {
  31. typeConfig.DisabledMetadataFetchers = new[] { "ServerDisabled" };
  32. }
  33. var serverConfigurationManager = new Mock<IServerConfigurationManager>();
  34. serverConfigurationManager.Setup(scm => scm.Configuration)
  35. .Returns(serverConfiguration);
  36. var baseItemManager = new BaseItemManager(serverConfigurationManager.Object);
  37. var actual = baseItemManager.IsMetadataFetcherEnabled(item, libraryTypeOptions, fetcherName);
  38. Assert.Equal(expected, actual);
  39. }
  40. [Theory]
  41. [InlineData(typeof(Book), "LibraryEnabled", true)]
  42. [InlineData(typeof(Book), "LibraryDisabled", false)]
  43. [InlineData(typeof(MusicArtist), "Enabled", true)]
  44. [InlineData(typeof(MusicArtist), "ServerDisabled", false)]
  45. public void IsImageFetcherEnabled_ChecksOptions_ReturnsExpected(Type itemType, string fetcherName, bool expected)
  46. {
  47. BaseItem item = (BaseItem)Activator.CreateInstance(itemType)!;
  48. var libraryTypeOptions = itemType == typeof(Book)
  49. ? new TypeOptions
  50. {
  51. Type = "Book",
  52. ImageFetchers = new[] { "LibraryEnabled" }
  53. }
  54. : null;
  55. var serverConfiguration = new ServerConfiguration();
  56. foreach (var typeConfig in serverConfiguration.MetadataOptions)
  57. {
  58. typeConfig.DisabledImageFetchers = new[] { "ServerDisabled" };
  59. }
  60. var serverConfigurationManager = new Mock<IServerConfigurationManager>();
  61. serverConfigurationManager.Setup(scm => scm.Configuration)
  62. .Returns(serverConfiguration);
  63. var baseItemManager = new BaseItemManager(serverConfigurationManager.Object);
  64. var actual = baseItemManager.IsImageFetcherEnabled(item, libraryTypeOptions, fetcherName);
  65. Assert.Equal(expected, actual);
  66. }
  67. }
  68. }