Skip to content

Commit

Permalink
Merge pull request #5339 from Bond-009/hasproviderids
Browse files Browse the repository at this point in the history
Revert breaking change to HasProviderId

(cherry picked from commit e858e5f)
Signed-off-by: Joshua M. Boniface <joshua@boniface.me>
  • Loading branch information
cvium authored and joshuaboniface committed Mar 6, 2021
1 parent 2d88b83 commit 20810ee
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 0 deletions.
27 changes: 27 additions & 0 deletions MediaBrowser.Model/Entities/ProviderIdsExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down
38 changes: 38 additions & 0 deletions tests/Jellyfin.Model.Tests/Entities/ProviderIdsExtensionsTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,44 @@ public class ProviderIdsExtensionsTests
{
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()
{
Expand Down

0 comments on commit 20810ee

Please sign in to comment.