2
0

BaseItemManagerTests.cs 3.3 KB

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