Browse Source

Revert breaking change

Bond_009 4 years ago
parent
commit
ba62d9d1fe

+ 27 - 0
MediaBrowser.Model/Entities/ProviderIdsExtensions.cs

@@ -9,6 +9,33 @@ namespace MediaBrowser.Model.Entities
     /// </summary>
     public static class ProviderIdsExtensions
     {
+        /// <summary>
+        /// Checks if this instance has an id for the given provider.
+        /// </summary>
+        /// <param name="instance">The instance.</param>
+        /// <param name="name">The of the provider name.</param>
+        /// <returns><c>true</c> if a provider id with the given name was found; otherwise <c>false</c>.</returns>
+        public static bool HasProviderId(this IHasProviderIds instance, string name)
+        {
+            if (instance == null)
+            {
+                throw new ArgumentNullException(nameof(instance));
+            }
+
+            return instance.ProviderIds?.ContainsKey(name) ?? false;
+        }
+
+        /// <summary>
+        /// Checks if this instance has an id for the given provider.
+        /// </summary>
+        /// <param name="instance">The instance.</param>
+        /// <param name="provider">The provider.</param>
+        /// <returns><c>true</c> if a provider id with the given name was found; otherwise <c>false</c>.</returns>
+        public static bool HasProviderId(this IHasProviderIds instance, MetadataProvider provider)
+        {
+            return instance.HasProviderId(provider.ToString());
+        }
+
         /// <summary>
         /// Gets a provider id.
         /// </summary>

+ 38 - 0
tests/Jellyfin.Model.Tests/Entities/ProviderIdsExtensionsTests.cs

@@ -9,6 +9,44 @@ namespace Jellyfin.Model.Tests.Entities
     {
         private const string ExampleImdbId = "tt0113375";
 
+        [Fact]
+        public void HasProviderId_NullInstance_ThrowsArgumentNullException()
+        {
+            Assert.Throws<ArgumentNullException>(() => ProviderIdsExtensions.HasProviderId(null!, MetadataProvider.Imdb));
+        }
+
+        [Fact]
+        public void HasProviderId_NullProvider_False()
+        {
+            var nullProvider = new ProviderIdsExtensionsTestsObject()
+            {
+                ProviderIds = null!
+            };
+
+            Assert.False(nullProvider.HasProviderId(MetadataProvider.Imdb));
+        }
+
+        [Fact]
+        public void HasProviderId_NullName_ThrowsArgumentNullException()
+        {
+            Assert.Throws<ArgumentNullException>(() => ProviderIdsExtensionsTestsObject.Empty.HasProviderId(null!));
+        }
+
+        [Fact]
+        public void HasProviderId_NotFoundName_False()
+        {
+            Assert.False(ProviderIdsExtensionsTestsObject.Empty.HasProviderId(MetadataProvider.Imdb));
+        }
+
+        [Fact]
+        public void HasProviderId_FoundName_True()
+        {
+            var provider = new ProviderIdsExtensionsTestsObject();
+            provider.ProviderIds[MetadataProvider.Imdb.ToString()] = ExampleImdbId;
+
+            Assert.True(provider.HasProviderId(MetadataProvider.Imdb));
+        }
+
         [Fact]
         public void GetProviderId_NullInstance_ThrowsArgumentNullException()
         {