MusicVideoNfoParserTests.cs 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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. _parser = new MovieNfoParser(new NullLogger<BaseNfoParser<MusicVideo>>(), config.Object, providerManager.Object, user.Object, userData.Object);
  31. }
  32. [Fact]
  33. public void Fetch_Valid_Succes()
  34. {
  35. var result = new MetadataResult<Video>()
  36. {
  37. Item = new MusicVideo()
  38. };
  39. _parser.Fetch(result, "Test Data/Dancing Queen.nfo", CancellationToken.None);
  40. var item = (MusicVideo)result.Item;
  41. Assert.Equal("Dancing Queen", item.Name);
  42. Assert.Single(item.Artists);
  43. Assert.Contains("ABBA", item.Artists);
  44. Assert.Equal("Arrival", item.Album);
  45. }
  46. [Fact]
  47. public void Fetch_WithNullItem_ThrowsArgumentException()
  48. {
  49. var result = new MetadataResult<Video>();
  50. Assert.Throws<ArgumentException>(() => _parser.Fetch(result, "Test Data/Dancing Queen.nfo", CancellationToken.None));
  51. }
  52. [Fact]
  53. public void Fetch_NullResult_ThrowsArgumentException()
  54. {
  55. var result = new MetadataResult<Video>()
  56. {
  57. Item = new MusicVideo()
  58. };
  59. Assert.Throws<ArgumentException>(() => _parser.Fetch(result, string.Empty, CancellationToken.None));
  60. }
  61. }
  62. }