80 lines
3.2 KiB
C#
80 lines
3.2 KiB
C#
using Jellyfin.Plugin.MetaShark.Api;
|
|
using Jellyfin.Plugin.MetaShark.Core;
|
|
using Jellyfin.Plugin.MetaShark.Providers;
|
|
using MediaBrowser.Controller.Library;
|
|
using MediaBrowser.Controller.Providers;
|
|
using Microsoft.AspNetCore.Http;
|
|
using Microsoft.Extensions.Logging;
|
|
using Moq;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Jellyfin.Plugin.MetaShark.Test
|
|
{
|
|
[TestClass]
|
|
public class SeriesProviderTest
|
|
{
|
|
|
|
ILoggerFactory loggerFactory = LoggerFactory.Create(builder =>
|
|
builder.AddSimpleConsole(options =>
|
|
{
|
|
options.IncludeScopes = true;
|
|
options.SingleLine = true;
|
|
options.TimestampFormat = "hh:mm:ss ";
|
|
}));
|
|
|
|
|
|
[TestMethod]
|
|
public void TestGetMetadata()
|
|
{
|
|
var info = new SeriesInfo() { Name = "天下长河" };
|
|
var httpClientFactory = new DefaultHttpClientFactory();
|
|
var libraryManagerStub = new Mock<ILibraryManager>();
|
|
var httpContextAccessorStub = new Mock<IHttpContextAccessor>();
|
|
var doubanApi = new DoubanApi(loggerFactory);
|
|
var tmdbApi = new TmdbApi(loggerFactory);
|
|
var omdbApi = new OmdbApi(loggerFactory);
|
|
var imdbApi = new ImdbApi(loggerFactory);
|
|
|
|
Task.Run(async () =>
|
|
{
|
|
var provider = new SeriesProvider(httpClientFactory, loggerFactory, libraryManagerStub.Object, httpContextAccessorStub.Object, doubanApi, tmdbApi, omdbApi, imdbApi);
|
|
var result = await provider.GetMetadata(info, CancellationToken.None);
|
|
Assert.IsNotNull(result);
|
|
|
|
var str = result.ToJson();
|
|
Console.WriteLine(result.ToJson());
|
|
}).GetAwaiter().GetResult();
|
|
}
|
|
|
|
[TestMethod]
|
|
public void TestGetAnimeMetadata()
|
|
{
|
|
var info = new SeriesInfo() { Name = "命运-冠位嘉年华" };
|
|
var httpClientFactory = new DefaultHttpClientFactory();
|
|
var libraryManagerStub = new Mock<ILibraryManager>();
|
|
var httpContextAccessorStub = new Mock<IHttpContextAccessor>();
|
|
var doubanApi = new DoubanApi(loggerFactory);
|
|
var tmdbApi = new TmdbApi(loggerFactory);
|
|
var omdbApi = new OmdbApi(loggerFactory);
|
|
var imdbApi = new ImdbApi(loggerFactory);
|
|
|
|
Task.Run(async () =>
|
|
{
|
|
var provider = new SeriesProvider(httpClientFactory, loggerFactory, libraryManagerStub.Object, httpContextAccessorStub.Object, doubanApi, tmdbApi, omdbApi, imdbApi);
|
|
var result = await provider.GetMetadata(info, CancellationToken.None);
|
|
Assert.AreEqual(result.Item.Name, "命运/冠位指定嘉年华 公元2020奥林匹亚英灵限界大祭");
|
|
Assert.AreEqual(result.Item.OriginalTitle, "Fate/Grand Carnival");
|
|
Assert.IsNotNull(result);
|
|
|
|
var str = result.ToJson();
|
|
Console.WriteLine(result.ToJson());
|
|
}).GetAwaiter().GetResult();
|
|
}
|
|
|
|
}
|
|
}
|