//
// Copyright (c) PlaceholderCompany. All rights reserved.
//
namespace Jellyfin.XbmcMetadata.Tests.Parsers
{
using System;
using System.Linq;
using System.Threading;
using Jellyfin.Data.Enums;
using Jellyfin.Database.Implementations.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.IO;
using MediaBrowser.Model.Providers;
using MediaBrowser.Providers.Plugins.Tmdb.Movies;
using MediaBrowser.XbmcMetadata.Parsers;
using Microsoft.Extensions.Logging.Abstractions;
using Moq;
using Xunit;
public class MovieNfoParserTests
{
private readonly MovieNfoParser _parser;
private readonly IUserDataManager _userDataManager;
private readonly User _testUser;
private readonly FileSystemMetadata _localImageFileMetadata;
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);
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()
{
Key = "Something"
});
var directoryService = new Mock();
_localImageFileMetadata = new FileSystemMetadata()
{
Exists = true,
FullName = OperatingSystem.IsWindows() ?
@"C:\media\movies\Justice League (2017).jpg"
: "/media/movies/Justice League (2017).jpg"
};
directoryService.Setup(x => x.GetFile(_localImageFileMetadata.FullName))
.Returns(_localImageFileMetadata);
_userDataManager = userData.Object;
_parser = new MovieNfoParser(
new NullLogger(),
configManager.Object,
providerManager.Object,
user.Object,
userData.Object,
directoryService.Object);
}
[Fact]
public void Fetch_Valid_Success()
{
var result = new MetadataResult