aboutsummaryrefslogtreecommitdiff
path: root/tests/Jellyfin.Model.Tests/Entities
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Jellyfin.Model.Tests/Entities')
-rw-r--r--tests/Jellyfin.Model.Tests/Entities/ProviderIdsExtensionsTests.cs103
1 files changed, 103 insertions, 0 deletions
diff --git a/tests/Jellyfin.Model.Tests/Entities/ProviderIdsExtensionsTests.cs b/tests/Jellyfin.Model.Tests/Entities/ProviderIdsExtensionsTests.cs
index a6f4164144..2347c08961 100644
--- a/tests/Jellyfin.Model.Tests/Entities/ProviderIdsExtensionsTests.cs
+++ b/tests/Jellyfin.Model.Tests/Entities/ProviderIdsExtensionsTests.cs
@@ -186,6 +186,109 @@ namespace Jellyfin.Model.Tests.Entities
Assert.Null(nullProvider.ProviderIds);
}
+ [Theory]
+ [InlineData(nameof(MetadataProvider.Imdb), "tt0113375", true)]
+ [InlineData(nameof(MetadataProvider.Imdb), "nm0000123", true)]
+ [InlineData(nameof(MetadataProvider.Imdb), "0113375", true)]
+ [InlineData(nameof(MetadataProvider.Imdb), "https://www.imdb.com/title/tt0113375", false)]
+ [InlineData(nameof(MetadataProvider.Tmdb), "11", true)]
+ [InlineData(nameof(MetadataProvider.Tmdb), "nm0000123", false)]
+ [InlineData(nameof(MetadataProvider.Tmdb), "0", false)]
+ [InlineData(nameof(MetadataProvider.Tmdb), "-11", false)]
+ [InlineData(nameof(MetadataProvider.TmdbCollection), "nm0000123", false)]
+ [InlineData(nameof(MetadataProvider.AudioDbArtist), "111239", true)]
+ [InlineData(nameof(MetadataProvider.AudioDbArtist), "a3cb23fc-acd3-4ce0-8f36-1e5aa6a18432", false)]
+ [InlineData(nameof(MetadataProvider.MusicBrainzArtist), "a3cb23fc-acd3-4ce0-8f36-1e5aa6a18432", true)]
+ [InlineData(nameof(MetadataProvider.MusicBrainzArtist), "111239", false)]
+ [InlineData(nameof(MetadataProvider.MusicBrainzAlbum), "not-an-mbid", false)]
+ [InlineData(nameof(MetadataProvider.Tvdb), "anything-goes", true)]
+ [InlineData("SomePlugin", "anything-goes", true)]
+ [InlineData(nameof(MetadataProvider.Tmdb), null, false)]
+ [InlineData(null, "11", false)]
+ public void IsValidProviderId_ChecksKnownFormats(string? name, string? value, bool expected)
+ {
+ Assert.Equal(expected, ProviderIdsExtensions.IsValidProviderId(name, value));
+ }
+
+ [Fact]
+ public void TrySetProviderId_ForeignId_False()
+ {
+ var provider = new ProviderIdsExtensionsTestsObject();
+
+ Assert.False(provider.TrySetProviderId(MetadataProvider.Tmdb, "nm0000123"));
+ Assert.Empty(provider.ProviderIds);
+ }
+
+ [Fact]
+ public void TrySetProviderId_ForeignId_KeepsExisting()
+ {
+ var provider = new ProviderIdsExtensionsTestsObject();
+ provider.ProviderIds[MetadataProvider.Tmdb.ToString()] = "11";
+
+ Assert.False(provider.TrySetProviderId(MetadataProvider.Tmdb, "nm0000123"));
+ Assert.Equal("11", provider.GetProviderId(MetadataProvider.Tmdb));
+ }
+
+ [Theory]
+ [InlineData(nameof(MetadataProvider.Imdb), " tt0113375 ")]
+ [InlineData(" Imdb", ExampleImdbId)]
+ public void TrySetProviderId_SurroundingWhitespace_Trimmed(string name, string value)
+ {
+ var provider = new ProviderIdsExtensionsTestsObject();
+
+ Assert.True(provider.TrySetProviderId(name, value));
+ Assert.Equal(ExampleImdbId, provider.GetProviderId(MetadataProvider.Imdb));
+ }
+
+ [Fact]
+ public void SetProviderIds_ReplacesAll()
+ {
+ var provider = new ProviderIdsExtensionsTestsObject();
+ provider.ProviderIds[MetadataProvider.Tvdb.ToString()] = "12345";
+
+ provider.SetProviderIds(new Dictionary<string, string>
+ {
+ [MetadataProvider.Imdb.ToString()] = ExampleImdbId
+ });
+
+ Assert.Equal(ExampleImdbId, provider.GetProviderId(MetadataProvider.Imdb));
+ Assert.False(provider.HasProviderId(MetadataProvider.Tvdb));
+ }
+
+ [Fact]
+ public void SetProviderIds_ForeignId_Dropped()
+ {
+ var provider = new ProviderIdsExtensionsTestsObject();
+
+ provider.SetProviderIds(new Dictionary<string, string>
+ {
+ [MetadataProvider.Tmdb.ToString()] = "nm0000123",
+ [MetadataProvider.Imdb.ToString()] = ExampleImdbId,
+ [MetadataProvider.Tvdb.ToString()] = string.Empty
+ });
+
+ Assert.False(provider.HasProviderId(MetadataProvider.Tmdb));
+ Assert.False(provider.HasProviderId(MetadataProvider.Tvdb));
+ Assert.Equal(ExampleImdbId, provider.GetProviderId(MetadataProvider.Imdb));
+ }
+
+ [Fact]
+ public void SetProviderIds_Null_Clears()
+ {
+ var provider = new ProviderIdsExtensionsTestsObject();
+ provider.ProviderIds[MetadataProvider.Imdb.ToString()] = ExampleImdbId;
+
+ provider.SetProviderIds(null);
+
+ Assert.Empty(provider.ProviderIds);
+ }
+
+ [Fact]
+ public void SetProviderIds_NullInstance_ThrowsArgumentNullException()
+ {
+ Assert.Throws<ArgumentNullException>(() => ProviderIdsExtensions.SetProviderIds(null!, new Dictionary<string, string>()));
+ }
+
[Fact]
public void RemoveProviderId_Null_Remove()
{