using System; using System.Linq; using System.Threading; using Jellyfin.Data.Entities; using MediaBrowser.Common.Configuration; using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Entities.Movies; using MediaBrowser.Controller.Library; using MediaBrowser.Controller.Providers; using MediaBrowser.Model.Configuration; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Providers; using MediaBrowser.Providers.Plugins.Tmdb.Movies; using MediaBrowser.XbmcMetadata.Parsers; using Microsoft.Extensions.Logging.Abstractions; using Moq; using Xunit; namespace Jellyfin.XbmcMetadata.Tests.Parsers { public class MovieNfoParserTests { private readonly MovieNfoParser _parser; private readonly IUserDataManager _userDataManager; private readonly User _testUser; public MovieNfoParserTests() { _testUser = new User("Test User", "Auth provider", "Reset provider"); var providerManager = new Mock(); var tmdbExternalId = new TmdbMovieExternalId(); var externalIdInfo = new ExternalIdInfo(tmdbExternalId.ProviderName, tmdbExternalId.Key, tmdbExternalId.Type, tmdbExternalId.UrlFormatString); providerManager.Setup(x => x.GetExternalIdInfos(It.IsAny())) .Returns(new[] { externalIdInfo }); var nfoConfig = new XbmcMetadataOptions() { UserId = "F38E6443-090B-4F7A-BD12-9CFF5020F7BC" }; var configManager = new Mock(); configManager.Setup(x => x.GetConfiguration(It.IsAny())) .Returns(nfoConfig); var user = new Mock(); user.Setup(x => x.GetUserById(It.IsAny())) .Returns(_testUser); var userData = new Mock(); userData.Setup(x => x.GetUserData(_testUser, It.IsAny())) .Returns(new UserItemData()); _userDataManager = userData.Object; _parser = new MovieNfoParser(new NullLogger(), configManager.Object, providerManager.Object, user.Object, userData.Object); } [Fact] public void Fetch_Valid_Success() { var result = new MetadataResult