MusicVideoNfoParserTests.cs 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. using System;
  2. using System.Linq;
  3. using System.Threading;
  4. using MediaBrowser.Common.Configuration;
  5. using MediaBrowser.Controller.Entities;
  6. using MediaBrowser.Controller.Library;
  7. using MediaBrowser.Controller.Providers;
  8. using MediaBrowser.Model.Configuration;
  9. using MediaBrowser.Model.Entities;
  10. using MediaBrowser.Model.Providers;
  11. using MediaBrowser.XbmcMetadata.Parsers;
  12. using Microsoft.Extensions.Logging.Abstractions;
  13. using Moq;
  14. using Xunit;
  15. namespace Jellyfin.XbmcMetadata.Tests.Parsers
  16. {
  17. public class MusicVideoNfoParserTests
  18. {
  19. private readonly MovieNfoParser _parser;
  20. public MusicVideoNfoParserTests()
  21. {
  22. var providerManager = new Mock<IProviderManager>();
  23. providerManager.Setup(x => x.GetExternalIdInfos(It.IsAny<IHasProviderIds>()))
  24. .Returns(Enumerable.Empty<ExternalIdInfo>());
  25. var config = new Mock<IConfigurationManager>();
  26. config.Setup(x => x.GetConfiguration(It.IsAny<string>()))
  27. .Returns(new XbmcMetadataOptions());
  28. var user = new Mock<IUserManager>();
  29. var userData = new Mock<IUserDataManager>();
  30. var directoryService = new Mock<IDirectoryService>();
  31. _parser = new MovieNfoParser(
  32. new NullLogger<BaseNfoParser<MusicVideo>>(),
  33. config.Object,
  34. providerManager.Object,
  35. user.Object,
  36. userData.Object,
  37. directoryService.Object);
  38. }
  39. [Fact]
  40. public void Fetch_Valid_Succes()
  41. {
  42. var result = new MetadataResult<Video>()
  43. {
  44. Item = new MusicVideo()
  45. };
  46. _parser.Fetch(result, "Test Data/Dancing Queen.nfo", CancellationToken.None);
  47. var item = (MusicVideo)result.Item;
  48. Assert.Equal("Dancing Queen", item.Name);
  49. Assert.Single(item.Artists);
  50. Assert.Contains("ABBA", item.Artists);
  51. Assert.Equal("Arrival", item.Album);
  52. }
  53. [Fact]
  54. public void Fetch_WithNullItem_ThrowsArgumentException()
  55. {
  56. var result = new MetadataResult<Video>();
  57. Assert.Throws<ArgumentException>(() => _parser.Fetch(result, "Test Data/Dancing Queen.nfo", CancellationToken.None));
  58. }
  59. [Fact]
  60. public void Fetch_NullResult_ThrowsArgumentException()
  61. {
  62. var result = new MetadataResult<Video>()
  63. {
  64. Item = new MusicVideo()
  65. };
  66. Assert.Throws<ArgumentException>(() => _parser.Fetch(result, string.Empty, CancellationToken.None));
  67. }
  68. }
  69. }