ProviderIdsExtensionsTests.cs 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. using System;
  2. using System.Collections.Generic;
  3. using MediaBrowser.Model.Entities;
  4. using Xunit;
  5. namespace Jellyfin.Model.Tests.Entities
  6. {
  7. public class ProviderIdsExtensionsTests
  8. {
  9. private const string ExampleImdbId = "tt0113375";
  10. [Fact]
  11. public void GetProviderId_NullInstance_ThrowsArgumentNullException()
  12. {
  13. Assert.Throws<ArgumentNullException>(() => ProviderIdsExtensions.GetProviderId(null!, MetadataProvider.Imdb));
  14. }
  15. [Fact]
  16. public void GetProviderId_NullName_ThrowsArgumentNullException()
  17. {
  18. Assert.Throws<ArgumentNullException>(() => ProviderIdsExtensionsTestsObject.Empty.GetProviderId(null!));
  19. }
  20. [Fact]
  21. public void GetProviderId_NotFoundName_Null()
  22. {
  23. Assert.Null(ProviderIdsExtensionsTestsObject.Empty.GetProviderId(MetadataProvider.Imdb));
  24. }
  25. [Fact]
  26. public void GetProviderId_NullProvider_Null()
  27. {
  28. var nullProvider = new ProviderIdsExtensionsTestsObject()
  29. {
  30. ProviderIds = null!
  31. };
  32. Assert.Null(nullProvider.GetProviderId(MetadataProvider.Imdb));
  33. }
  34. [Fact]
  35. public void TryGetProviderId_NotFoundName_False()
  36. {
  37. Assert.False(ProviderIdsExtensionsTestsObject.Empty.TryGetProviderId(MetadataProvider.Imdb, out _));
  38. }
  39. [Fact]
  40. public void TryGetProviderId_NullProvider_False()
  41. {
  42. var nullProvider = new ProviderIdsExtensionsTestsObject()
  43. {
  44. ProviderIds = null!
  45. };
  46. Assert.False(nullProvider.TryGetProviderId(MetadataProvider.Imdb, out _));
  47. }
  48. [Fact]
  49. public void GetProviderId_FoundName_Id()
  50. {
  51. var provider = new ProviderIdsExtensionsTestsObject();
  52. provider.ProviderIds[MetadataProvider.Imdb.ToString()] = ExampleImdbId;
  53. Assert.Equal(ExampleImdbId, provider.GetProviderId(MetadataProvider.Imdb));
  54. }
  55. [Fact]
  56. public void TryGetProviderId_FoundName_True()
  57. {
  58. var provider = new ProviderIdsExtensionsTestsObject();
  59. provider.ProviderIds[MetadataProvider.Imdb.ToString()] = ExampleImdbId;
  60. Assert.True(provider.TryGetProviderId(MetadataProvider.Imdb, out var id));
  61. Assert.Equal(ExampleImdbId, id);
  62. }
  63. [Fact]
  64. public void SetProviderId_NullInstance_ThrowsArgumentNullException()
  65. {
  66. Assert.Throws<ArgumentNullException>(() => ProviderIdsExtensions.SetProviderId(null!, MetadataProvider.Imdb, ExampleImdbId));
  67. }
  68. [Fact]
  69. public void SetProviderId_Null_Remove()
  70. {
  71. var provider = new ProviderIdsExtensionsTestsObject();
  72. provider.SetProviderId(MetadataProvider.Imdb, null!);
  73. Assert.Empty(provider.ProviderIds);
  74. }
  75. [Fact]
  76. public void SetProviderId_EmptyName_Remove()
  77. {
  78. var provider = new ProviderIdsExtensionsTestsObject();
  79. provider.ProviderIds[MetadataProvider.Imdb.ToString()] = ExampleImdbId;
  80. provider.SetProviderId(MetadataProvider.Imdb, string.Empty);
  81. Assert.Empty(provider.ProviderIds);
  82. }
  83. [Fact]
  84. public void SetProviderId_NonEmptyId_Success()
  85. {
  86. var provider = new ProviderIdsExtensionsTestsObject();
  87. provider.SetProviderId(MetadataProvider.Imdb, ExampleImdbId);
  88. Assert.Single(provider.ProviderIds);
  89. }
  90. [Fact]
  91. public void SetProviderId_NullProvider_Success()
  92. {
  93. var nullProvider = new ProviderIdsExtensionsTestsObject()
  94. {
  95. ProviderIds = null!
  96. };
  97. nullProvider.SetProviderId(MetadataProvider.Imdb, ExampleImdbId);
  98. Assert.Single(nullProvider.ProviderIds);
  99. }
  100. [Fact]
  101. public void SetProviderId_NullProviderAndEmptyName_Success()
  102. {
  103. var nullProvider = new ProviderIdsExtensionsTestsObject()
  104. {
  105. ProviderIds = null!
  106. };
  107. nullProvider.SetProviderId(MetadataProvider.Imdb, string.Empty);
  108. Assert.Null(nullProvider.ProviderIds);
  109. }
  110. private class ProviderIdsExtensionsTestsObject : IHasProviderIds
  111. {
  112. public static readonly ProviderIdsExtensionsTestsObject Empty = new ProviderIdsExtensionsTestsObject();
  113. public Dictionary<string, string> ProviderIds { get; set; } = new Dictionary<string, string>();
  114. }
  115. }
  116. }