NullableDictionaryTests.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. using System.Collections.Concurrent;
  2. using System.Collections.Generic;
  3. using Masuit.Tools.Systems;
  4. using Xunit;
  5. namespace Masuit.Tools.Abstractions.Test.Systems;
  6. public class NullableDictionaryTests
  7. {
  8. [Fact]
  9. public void Add_ShouldAddKeyValuePair()
  10. {
  11. var dictionary = new NullableDictionary<string, int>();
  12. dictionary.Add("key1", 1);
  13. Assert.True(dictionary.ContainsKey("key1"));
  14. Assert.Equal(1, dictionary["key1"]);
  15. }
  16. [Fact]
  17. public void Remove_ShouldRemoveKeyValuePair()
  18. {
  19. var dictionary = new NullableDictionary<string, int>();
  20. dictionary.Add("key1", 1);
  21. Assert.True(dictionary.Remove("key1"));
  22. Assert.False(dictionary.ContainsKey("key1"));
  23. }
  24. [Fact]
  25. public void TryGetValue_ShouldReturnTrueIfKeyExists()
  26. {
  27. var dictionary = new NullableDictionary<string, int>();
  28. dictionary.Add("key1", 1);
  29. var result = dictionary.TryGetValue("key1", out var value);
  30. Assert.True(result);
  31. Assert.Equal(1, value);
  32. }
  33. [Fact]
  34. public void TryGetValue_ShouldReturnFalseIfKeyDoesNotExist()
  35. {
  36. var dictionary = new NullableDictionary<string, int>();
  37. var result = dictionary.TryGetValue("key1", out var value);
  38. Assert.False(result);
  39. }
  40. [Fact]
  41. public void Indexer_ShouldSetAndGetKeyValuePair()
  42. {
  43. var dictionary = new NullableDictionary<string, int>();
  44. dictionary["key1"] = 1;
  45. Assert.Equal(1, dictionary["key1"]);
  46. }
  47. [Fact]
  48. public void ImplicitConversion_FromDictionary_ShouldConvertCorrectly()
  49. {
  50. var dict = new Dictionary<string, int> { { "key1", 1 } };
  51. NullableDictionary<string, int> nullableDict = dict;
  52. Assert.True(nullableDict.ContainsKey("key1"));
  53. Assert.Equal(1, nullableDict["key1"]);
  54. }
  55. [Fact]
  56. public void ImplicitConversion_FromConcurrentDictionary_ShouldConvertCorrectly()
  57. {
  58. var dict = new ConcurrentDictionary<string, int>();
  59. dict["key1"] = 1;
  60. NullableDictionary<string, int> nullableDict = dict;
  61. Assert.True(nullableDict.ContainsKey("key1"));
  62. Assert.Equal(1, nullableDict["key1"]);
  63. }
  64. [Fact]
  65. public void ImplicitConversion_ToDictionary_ShouldConvertCorrectly()
  66. {
  67. var nullableDict = new NullableDictionary<string, int>();
  68. nullableDict["key1"] = 1;
  69. Dictionary<string, int> dict = nullableDict;
  70. Assert.True(dict.ContainsKey("key1"));
  71. Assert.Equal(1, dict["key1"]);
  72. }
  73. }