ComplexPasswordAttributeTests.cs 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. using Masuit.Tools.Core.Validator;
  2. using Xunit;
  3. namespace Masuit.Tools.Abstractions.Test.Validator;
  4. public class ComplexPasswordAttributeTests
  5. {
  6. [Theory]
  7. [InlineData("Password123!", true)]
  8. [InlineData("Pass123!", true)]
  9. [InlineData("123456", false)]
  10. [InlineData("abcdef", false)]
  11. [InlineData("ABCDEF", false)]
  12. [InlineData("!@#$%^", false)]
  13. [InlineData("Pass!1", true)]
  14. [InlineData("P@ssw0rd", true)]
  15. [InlineData("P@ss", false)]
  16. public void IsValid_DefaultSettings(string password, bool expected)
  17. {
  18. // Arrange
  19. var attribute = new ComplexPasswordAttribute();
  20. // Act
  21. var result = attribute.IsValid(password);
  22. // Assert
  23. Assert.Equal(expected, result);
  24. }
  25. [Theory]
  26. [InlineData("Password123!", true)]
  27. [InlineData("Pass123!", true)]
  28. [InlineData("123456", false)]
  29. [InlineData("abcdef", false)]
  30. [InlineData("ABCDEF", false)]
  31. [InlineData("!@#$%^", false)]
  32. [InlineData("P@ssw0rd", true)]
  33. [InlineData("P@ss", false)]
  34. public void IsValid_CustomSettings(string password, bool expected)
  35. {
  36. // Arrange
  37. var attribute = new ComplexPasswordAttribute(8, 20)
  38. {
  39. MustNumber = true,
  40. MustLetter = true,
  41. MustSymbol = true
  42. };
  43. // Act
  44. var result = attribute.IsValid(password);
  45. // Assert
  46. Assert.Equal(expected, result);
  47. }
  48. [Theory]
  49. [InlineData("Password123", true)]
  50. [InlineData("Pass123", true)]
  51. [InlineData("123456", false)]
  52. [InlineData("abcdef", false)]
  53. [InlineData("ABCDEF", false)]
  54. [InlineData("!@#$%^", false)]
  55. [InlineData("Pass1", false)]
  56. [InlineData("P@ssw0rd", true)]
  57. [InlineData("P@ss", false)]
  58. public void IsValid_NoSymbolRequirement(string password, bool expected)
  59. {
  60. // Arrange
  61. var attribute = new ComplexPasswordAttribute
  62. {
  63. MustNumber = true,
  64. MustLetter = true,
  65. MustSymbol = false
  66. };
  67. // Act
  68. var result = attribute.IsValid(password);
  69. // Assert
  70. Assert.Equal(expected, result);
  71. }
  72. [Theory]
  73. [InlineData("Password!", true)]
  74. [InlineData("Pass!", false)]
  75. [InlineData("123456", false)]
  76. [InlineData("abcdef", false)]
  77. [InlineData("ABCDEF", false)]
  78. [InlineData("!@#$%^", false)]
  79. [InlineData("P@ssw0rd", true)]
  80. [InlineData("P@ss", false)]
  81. public void IsValid_NoNumberRequirement(string password, bool expected)
  82. {
  83. // Arrange
  84. var attribute = new ComplexPasswordAttribute
  85. {
  86. MustNumber = false,
  87. MustLetter = true,
  88. MustSymbol = true
  89. };
  90. // Act
  91. var result = attribute.IsValid(password);
  92. // Assert
  93. Assert.Equal(expected, result);
  94. }
  95. [Theory]
  96. [InlineData("Password123", false)]
  97. [InlineData("Pass123", false)]
  98. [InlineData("123456", false)]
  99. [InlineData("abcdef", false)]
  100. [InlineData("ABCDEF", false)]
  101. [InlineData("!@#$%^", false)]
  102. [InlineData("Pass1", false)]
  103. [InlineData("P@ssw0rd", true)]
  104. [InlineData("P@ss", false)]
  105. public void IsValid_NoLetterRequirement(string password, bool expected)
  106. {
  107. // Arrange
  108. var attribute = new ComplexPasswordAttribute
  109. {
  110. MustNumber = true,
  111. MustLetter = false,
  112. MustSymbol = true
  113. };
  114. // Act
  115. var result = attribute.IsValid(password);
  116. // Assert
  117. Assert.Equal(expected, result);
  118. }
  119. }