|
@@ -167,8 +167,8 @@ namespace Jellyfin.Providers.Tests.Manager
|
|
|
|
|
|
private static TheoryData<string[], int[]?, int[]?, int[]?, int[]?, int?[]?, int[]> GetMetadataProvidersOrderData()
|
|
|
{
|
|
|
- var l = "local";
|
|
|
- var r = "remote";
|
|
|
+ var l = nameof(ILocalMetadataProvider);
|
|
|
+ var r = nameof(IRemoteMetadataProvider);
|
|
|
return new ()
|
|
|
{
|
|
|
{ new[] { l, l, r, r }, null, null, null, null, null, new[] { 0, 1, 2, 3 } }, // no order options set
|
|
@@ -198,8 +198,7 @@ namespace Jellyfin.Providers.Tests.Manager
|
|
|
{ new[] { l, l, l, r, r, r }, null, null, new[] { 2, 1, 0 }, new[] { 5, 4, 3 }, null, new[] { 2, 5, 1, 4, 0, 3 } }, // full reverse order
|
|
|
|
|
|
// IHasOrder ordering (not interleaved, doesn't care about types)
|
|
|
- // TODO unset goes to beginning, not end
|
|
|
- { new[] { l, l, r, r }, null, null, null, null, new int?[] { 2, null, 1, null }, new[] { 1, 3, 2, 0 } }, // partially defined
|
|
|
+ { new[] { l, l, r, r }, null, null, null, null, new int?[] { 2, null, 1, null }, new[] { 2, 0, 1, 3 } }, // partially defined
|
|
|
{ new[] { l, l, r, r }, null, null, null, null, new int?[] { 3, 2, 1, 0 }, new[] { 3, 2, 1, 0 } }, // full reverse order
|
|
|
// note odd interaction - orderby determines order of slot when local and remote both have a slot 0
|
|
|
{ new[] { l, l, r, r }, new[] { 1 }, new[] { 3 }, null, null, new int?[] { null, 2, null, 1 }, new[] { 3, 1, 0, 2 } }, // sorts interleaved results
|
|
@@ -216,12 +215,6 @@ namespace Jellyfin.Providers.Tests.Manager
|
|
|
public void GetMetadataProviders_ProviderOrder_MatchesExpected(string[] providers, int[]? libraryLocalOrder, int[]? libraryRemoteOrder, int[]? serverLocalOrder, int[]? serverRemoteOrder, int?[]? hasOrderOrder, int[] expectedOrder)
|
|
|
{
|
|
|
var item = new MetadataTestItem();
|
|
|
- var typeNames = new Dictionary<string, string>
|
|
|
- {
|
|
|
- { "remote", nameof(IRemoteMetadataProvider) },
|
|
|
- { "local", nameof(ILocalMetadataProvider) },
|
|
|
- { "custom", nameof(ICustomMetadataProvider) }
|
|
|
- };
|
|
|
|
|
|
var nameProvider = new Func<int, string>(i => "Provider" + i);
|
|
|
|
|
@@ -229,7 +222,7 @@ namespace Jellyfin.Providers.Tests.Manager
|
|
|
for (var i = 0; i < providers.Length; i++)
|
|
|
{
|
|
|
var order = hasOrderOrder?[i];
|
|
|
- providerList.Add(MockIMetadataProviderMapper<MetadataTestItem, MetadataTestItemInfo>(typeNames[providers[i]], nameProvider(i), order: order));
|
|
|
+ providerList.Add(MockIMetadataProviderMapper<MetadataTestItem, MetadataTestItemInfo>(providers[i], nameProvider(i), order: order));
|
|
|
}
|
|
|
|
|
|
var libraryOptions = new LibraryOptions();
|
|
@@ -278,7 +271,6 @@ namespace Jellyfin.Providers.Tests.Manager
|
|
|
var providerManager = GetProviderManager(serverConfiguration: serverConfiguration, baseItemManager: baseItemManager.Object);
|
|
|
AddParts(providerManager, metadataProviders: providerList);
|
|
|
|
|
|
- // TODO why does this take libraryOptions directly while GetImageProviders did not?
|
|
|
var actualProviders = providerManager.GetMetadataProviders<MetadataTestItem>(item, libraryOptions).ToList();
|
|
|
|
|
|
Assert.Equal(providerList.Count, actualProviders.Count);
|