EnumExtTests.cs 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. using System.ComponentModel;
  2. using System.Linq;
  3. using System.Reflection;
  4. using Masuit.Tools.Systems;
  5. using Xunit;
  6. namespace Masuit.Tools.Abstractions.Test.Systems;
  7. public class EnumExtTests
  8. {
  9. [Fact]
  10. public void GetDictionary_ShouldReturnCorrectDictionary()
  11. {
  12. var dict = typeof(TestEnum).GetDictionary();
  13. Assert.Equal(3, dict.Count);
  14. Assert.Equal("First", dict[1]);
  15. Assert.Equal("Second", dict[2]);
  16. Assert.Equal("Third", dict[3]);
  17. }
  18. [Fact]
  19. public void GetEnumType_ShouldReturnCorrectType()
  20. {
  21. var assembly = Assembly.GetExecutingAssembly();
  22. var type = assembly.GetEnumType("TestEnum");
  23. Assert.Equal(typeof(TestEnum), type);
  24. }
  25. [Fact]
  26. public void GetDisplay_ShouldReturnCorrectDisplay()
  27. {
  28. var display = TestEnum.First.GetDisplay();
  29. Assert.Equal("First", display);
  30. }
  31. [Fact]
  32. public void GetDescription_ShouldReturnCorrectDescription()
  33. {
  34. var description = TestEnum.First.GetDescription();
  35. Assert.Equal("First Value", description);
  36. }
  37. [Fact]
  38. public void GetAttributes_ShouldReturnCorrectAttributes()
  39. {
  40. var attributes = TestEnum.First.GetAttributes<DescriptionAttribute>().ToList();
  41. Assert.Single(attributes);
  42. Assert.Equal("First Value", attributes[0].Description);
  43. }
  44. [Fact]
  45. public void Split_ShouldReturnCorrectValues()
  46. {
  47. var values = FlagsEnum.FlagA | FlagsEnum.FlagB;
  48. var splitValues = values.Split().ToList();
  49. Assert.Contains(FlagsEnum.FlagA, splitValues);
  50. Assert.Contains(FlagsEnum.FlagB, splitValues);
  51. }
  52. [Fact]
  53. public void GetEnumDescription_ShouldReturnCorrectDescription()
  54. {
  55. var description = TestEnum.First.GetEnumDescription();
  56. Assert.NotNull(description);
  57. Assert.Equal("First Value", description.Description);
  58. }
  59. [Fact]
  60. public void GetTypedEnumDescriptions_ShouldReturnCorrectDescriptions()
  61. {
  62. var descriptions = TestEnum.First.GetTypedEnumDescriptions();
  63. Assert.Single(descriptions);
  64. Assert.Equal("First Value", descriptions["en"].Description);
  65. }
  66. [Fact]
  67. public void ToEnumString_ShouldReturnCorrectString()
  68. {
  69. var enumString = 1.ToEnumString(typeof(TestEnum));
  70. Assert.Equal("First", enumString);
  71. }
  72. [Fact]
  73. public void GetDescriptionAndValue_ShouldReturnCorrectDictionary()
  74. {
  75. var dict = typeof(TestEnum).GetDescriptionAndValue();
  76. Assert.Equal(3, dict.Count);
  77. Assert.Equal(1, dict["First Value"]);
  78. Assert.Equal(2, dict["Second Value"]);
  79. Assert.Equal(3, dict["Third Value"]);
  80. }
  81. }