ProviderIdsExtensionsTests.cs 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  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 GetProviderId_NullInstance_ThrowsArgumentNullException()
  43. {
  44. Assert.Throws<ArgumentNullException>(() => ProviderIdsExtensions.GetProviderId(null!, MetadataProvider.Imdb));
  45. }
  46. [Fact]
  47. public void GetProviderId_NullName_ThrowsArgumentNullException()
  48. {
  49. Assert.Throws<ArgumentNullException>(() => ProviderIdsExtensionsTestsObject.Empty.GetProviderId(null!));
  50. }
  51. [Fact]
  52. public void GetProviderId_NotFoundName_Null()
  53. {
  54. Assert.Null(ProviderIdsExtensionsTestsObject.Empty.GetProviderId(MetadataProvider.Imdb));
  55. }
  56. [Fact]
  57. public void GetProviderId_NullProvider_Null()
  58. {
  59. var nullProvider = new ProviderIdsExtensionsTestsObject()
  60. {
  61. ProviderIds = null!
  62. };
  63. Assert.Null(nullProvider.GetProviderId(MetadataProvider.Imdb));
  64. }
  65. [Fact]
  66. public void TryGetProviderId_NotFoundName_False()
  67. {
  68. Assert.False(ProviderIdsExtensionsTestsObject.Empty.TryGetProviderId(MetadataProvider.Imdb, out _));
  69. }
  70. [Fact]
  71. public void TryGetProviderId_NullProvider_False()
  72. {
  73. var nullProvider = new ProviderIdsExtensionsTestsObject()
  74. {
  75. ProviderIds = null!
  76. };
  77. Assert.False(nullProvider.TryGetProviderId(MetadataProvider.Imdb, out _));
  78. }
  79. [Fact]
  80. public void GetProviderId_FoundName_Id()
  81. {
  82. var provider = new ProviderIdsExtensionsTestsObject();
  83. provider.ProviderIds[MetadataProvider.Imdb.ToString()] = ExampleImdbId;
  84. Assert.Equal(ExampleImdbId, provider.GetProviderId(MetadataProvider.Imdb));
  85. }
  86. [Fact]
  87. public void TryGetProviderId_FoundName_True()
  88. {
  89. var provider = new ProviderIdsExtensionsTestsObject();
  90. provider.ProviderIds[MetadataProvider.Imdb.ToString()] = ExampleImdbId;
  91. Assert.True(provider.TryGetProviderId(MetadataProvider.Imdb, out var id));
  92. Assert.Equal(ExampleImdbId, id);
  93. }
  94. [Fact]
  95. public void SetProviderId_NullInstance_ThrowsArgumentNullException()
  96. {
  97. Assert.Throws<ArgumentNullException>(() => ProviderIdsExtensions.SetProviderId(null!, MetadataProvider.Imdb, ExampleImdbId));
  98. }
  99. [Fact]
  100. public void SetProviderId_Null_Remove()
  101. {
  102. var provider = new ProviderIdsExtensionsTestsObject();
  103. provider.SetProviderId(MetadataProvider.Imdb, null!);
  104. Assert.Empty(provider.ProviderIds);
  105. }
  106. [Fact]
  107. public void SetProviderId_EmptyName_Remove()
  108. {
  109. var provider = new ProviderIdsExtensionsTestsObject();
  110. provider.ProviderIds[MetadataProvider.Imdb.ToString()] = ExampleImdbId;
  111. provider.SetProviderId(MetadataProvider.Imdb, string.Empty);
  112. Assert.Empty(provider.ProviderIds);
  113. }
  114. [Fact]
  115. public void SetProviderId_NonEmptyId_Success()
  116. {
  117. var provider = new ProviderIdsExtensionsTestsObject();
  118. provider.SetProviderId(MetadataProvider.Imdb, ExampleImdbId);
  119. Assert.Single(provider.ProviderIds);
  120. }
  121. [Fact]
  122. public void SetProviderId_NullProvider_Success()
  123. {
  124. var nullProvider = new ProviderIdsExtensionsTestsObject()
  125. {
  126. ProviderIds = null!
  127. };
  128. nullProvider.SetProviderId(MetadataProvider.Imdb, ExampleImdbId);
  129. Assert.Single(nullProvider.ProviderIds);
  130. }
  131. [Fact]
  132. public void SetProviderId_NullProviderAndEmptyName_Success()
  133. {
  134. var nullProvider = new ProviderIdsExtensionsTestsObject()
  135. {
  136. ProviderIds = null!
  137. };
  138. nullProvider.SetProviderId(MetadataProvider.Imdb, string.Empty);
  139. Assert.Null(nullProvider.ProviderIds);
  140. }
  141. private class ProviderIdsExtensionsTestsObject : IHasProviderIds
  142. {
  143. public static readonly ProviderIdsExtensionsTestsObject Empty = new ProviderIdsExtensionsTestsObject();
  144. public Dictionary<string, string> ProviderIds { get; set; } = new Dictionary<string, string>();
  145. }
  146. }
  147. }