ProviderIdsExtensionsTests.cs 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  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 HasProviderId_NullInstance_ThrowsArgumentNullException()
  12. {
  13. Assert.Throws<ArgumentNullException>(() => ProviderIdsExtensions.HasProviderId(null!, MetadataProvider.Imdb));
  14. }
  15. [Fact]
  16. public void HasProviderId_NullProvider_False()
  17. {
  18. var nullProvider = new ProviderIdsExtensionsTestsObject
  19. {
  20. ProviderIds = null!
  21. };
  22. Assert.False(nullProvider.HasProviderId(MetadataProvider.Imdb));
  23. }
  24. [Fact]
  25. public void HasProviderId_NullName_ThrowsArgumentNullException()
  26. {
  27. Assert.Throws<ArgumentNullException>(() => ProviderIdsExtensionsTestsObject.Empty.HasProviderId(null!));
  28. }
  29. [Fact]
  30. public void HasProviderId_NotFoundName_False()
  31. {
  32. Assert.False(ProviderIdsExtensionsTestsObject.Empty.HasProviderId(MetadataProvider.Imdb));
  33. }
  34. [Fact]
  35. public void HasProviderId_FoundName_True()
  36. {
  37. var provider = new ProviderIdsExtensionsTestsObject();
  38. provider.ProviderIds[MetadataProvider.Imdb.ToString()] = ExampleImdbId;
  39. Assert.True(provider.HasProviderId(MetadataProvider.Imdb));
  40. }
  41. [Fact]
  42. public void HasProviderId_FoundNameEmptyValue_False()
  43. {
  44. var provider = new ProviderIdsExtensionsTestsObject();
  45. provider.ProviderIds[MetadataProvider.Imdb.ToString()] = string.Empty;
  46. Assert.False(provider.HasProviderId(MetadataProvider.Imdb));
  47. }
  48. [Fact]
  49. public void GetProviderId_NullInstance_ThrowsArgumentNullException()
  50. {
  51. Assert.Throws<ArgumentNullException>(() => ProviderIdsExtensions.GetProviderId(null!, MetadataProvider.Imdb));
  52. }
  53. [Fact]
  54. public void GetProviderId_NullName_ThrowsArgumentNullException()
  55. {
  56. Assert.Throws<ArgumentNullException>(() => ProviderIdsExtensionsTestsObject.Empty.GetProviderId(null!));
  57. }
  58. [Fact]
  59. public void GetProviderId_NotFoundName_Null()
  60. {
  61. Assert.Null(ProviderIdsExtensionsTestsObject.Empty.GetProviderId(MetadataProvider.Imdb));
  62. }
  63. [Fact]
  64. public void GetProviderId_NullProvider_Null()
  65. {
  66. var nullProvider = new ProviderIdsExtensionsTestsObject
  67. {
  68. ProviderIds = null!
  69. };
  70. Assert.Null(nullProvider.GetProviderId(MetadataProvider.Imdb));
  71. }
  72. [Fact]
  73. public void TryGetProviderId_NotFoundName_False()
  74. {
  75. Assert.False(ProviderIdsExtensionsTestsObject.Empty.TryGetProviderId(MetadataProvider.Imdb, out _));
  76. }
  77. [Fact]
  78. public void TryGetProviderId_NullProvider_False()
  79. {
  80. var nullProvider = new ProviderIdsExtensionsTestsObject
  81. {
  82. ProviderIds = null!
  83. };
  84. Assert.False(nullProvider.TryGetProviderId(MetadataProvider.Imdb, out _));
  85. }
  86. [Fact]
  87. public void GetProviderId_FoundName_Id()
  88. {
  89. var provider = new ProviderIdsExtensionsTestsObject();
  90. provider.ProviderIds[MetadataProvider.Imdb.ToString()] = ExampleImdbId;
  91. Assert.Equal(ExampleImdbId, provider.GetProviderId(MetadataProvider.Imdb));
  92. }
  93. [Fact]
  94. public void TryGetProviderId_FoundName_True()
  95. {
  96. var provider = new ProviderIdsExtensionsTestsObject();
  97. provider.ProviderIds[MetadataProvider.Imdb.ToString()] = ExampleImdbId;
  98. Assert.True(provider.TryGetProviderId(MetadataProvider.Imdb, out var id));
  99. Assert.Equal(ExampleImdbId, id);
  100. }
  101. [Fact]
  102. public void TryGetProviderId_FoundNameEmptyValue_False()
  103. {
  104. var provider = new ProviderIdsExtensionsTestsObject();
  105. provider.ProviderIds[MetadataProvider.Imdb.ToString()] = string.Empty;
  106. Assert.False(provider.TryGetProviderId(MetadataProvider.Imdb, out var id));
  107. Assert.Null(id);
  108. }
  109. [Fact]
  110. public void SetProviderId_NullInstance_ThrowsArgumentNullException()
  111. {
  112. Assert.Throws<ArgumentNullException>(() => ProviderIdsExtensions.SetProviderId(null!, MetadataProvider.Imdb, ExampleImdbId));
  113. }
  114. [Fact]
  115. public void SetProviderId_Null_Remove()
  116. {
  117. var provider = new ProviderIdsExtensionsTestsObject();
  118. Assert.Throws<ArgumentNullException>(() => provider.SetProviderId(MetadataProvider.Imdb, null!));
  119. Assert.Empty(provider.ProviderIds);
  120. }
  121. [Fact]
  122. public void SetProviderId_EmptyName_Remove()
  123. {
  124. var provider = new ProviderIdsExtensionsTestsObject();
  125. provider.ProviderIds[MetadataProvider.Imdb.ToString()] = ExampleImdbId;
  126. Assert.Throws<ArgumentException>(() => provider.SetProviderId(MetadataProvider.Imdb, string.Empty));
  127. Assert.Single(provider.ProviderIds);
  128. }
  129. [Fact]
  130. public void SetProviderId_NonEmptyId_Success()
  131. {
  132. var provider = new ProviderIdsExtensionsTestsObject();
  133. provider.SetProviderId(MetadataProvider.Imdb, ExampleImdbId);
  134. Assert.Single(provider.ProviderIds);
  135. }
  136. [Fact]
  137. public void SetProviderId_NullProvider_Success()
  138. {
  139. var nullProvider = new ProviderIdsExtensionsTestsObject
  140. {
  141. ProviderIds = null!
  142. };
  143. nullProvider.SetProviderId(MetadataProvider.Imdb, ExampleImdbId);
  144. Assert.Single(nullProvider.ProviderIds);
  145. }
  146. [Fact]
  147. public void SetProviderId_NullProviderAndEmptyName_Success()
  148. {
  149. var nullProvider = new ProviderIdsExtensionsTestsObject
  150. {
  151. ProviderIds = null!
  152. };
  153. Assert.Throws<ArgumentException>(() => nullProvider.SetProviderId(MetadataProvider.Imdb, string.Empty));
  154. Assert.Null(nullProvider.ProviderIds);
  155. }
  156. [Fact]
  157. public void RemoveProviderId_Null_Remove()
  158. {
  159. var provider = new ProviderIdsExtensionsTestsObject();
  160. provider.ProviderIds[MetadataProvider.Imdb.ToString()] = ExampleImdbId;
  161. provider.RemoveProviderId(MetadataProvider.Imdb);
  162. Assert.Empty(provider.ProviderIds);
  163. }
  164. private sealed class ProviderIdsExtensionsTestsObject : IHasProviderIds
  165. {
  166. public static readonly ProviderIdsExtensionsTestsObject Empty = new ProviderIdsExtensionsTestsObject();
  167. public Dictionary<string, string> ProviderIds { get; set; } = new Dictionary<string, string>();
  168. }
  169. }
  170. }