mirror of
https://github.com/ldqk/Masuit.Tools.git
synced 2026-10-29 04:37:01 +08:00
135 lines
3.5 KiB
C#
135 lines
3.5 KiB
C#
using Masuit.Tools.Core.Validator;
|
|
using Xunit;
|
|
|
|
namespace Masuit.Tools.Abstractions.Test.Validator;
|
|
|
|
public class ComplexPasswordAttributeTests
|
|
{
|
|
[Theory]
|
|
[InlineData("Password123!", true)]
|
|
[InlineData("Pass123!", true)]
|
|
[InlineData("123456", false)]
|
|
[InlineData("abcdef", false)]
|
|
[InlineData("ABCDEF", false)]
|
|
[InlineData("!@#$%^", false)]
|
|
[InlineData("Pass!1", true)]
|
|
[InlineData("P@ssw0rd", true)]
|
|
[InlineData("P@ss", false)]
|
|
public void IsValid_DefaultSettings(string password, bool expected)
|
|
{
|
|
// Arrange
|
|
var attribute = new ComplexPasswordAttribute();
|
|
|
|
// Act
|
|
var result = attribute.IsValid(password);
|
|
|
|
// Assert
|
|
Assert.Equal(expected, result);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData("Password123!", true)]
|
|
[InlineData("Pass123!", true)]
|
|
[InlineData("123456", false)]
|
|
[InlineData("abcdef", false)]
|
|
[InlineData("ABCDEF", false)]
|
|
[InlineData("!@#$%^", false)]
|
|
[InlineData("P@ssw0rd", true)]
|
|
[InlineData("P@ss", false)]
|
|
public void IsValid_CustomSettings(string password, bool expected)
|
|
{
|
|
// Arrange
|
|
var attribute = new ComplexPasswordAttribute(8, 20)
|
|
{
|
|
MustNumber = true,
|
|
MustLetter = true,
|
|
MustSymbol = true
|
|
};
|
|
|
|
// Act
|
|
var result = attribute.IsValid(password);
|
|
|
|
// Assert
|
|
Assert.Equal(expected, result);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData("Password123", true)]
|
|
[InlineData("Pass123", true)]
|
|
[InlineData("123456", false)]
|
|
[InlineData("abcdef", false)]
|
|
[InlineData("ABCDEF", false)]
|
|
[InlineData("!@#$%^", false)]
|
|
[InlineData("Pass1", false)]
|
|
[InlineData("P@ssw0rd", true)]
|
|
[InlineData("P@ss", false)]
|
|
public void IsValid_NoSymbolRequirement(string password, bool expected)
|
|
{
|
|
// Arrange
|
|
var attribute = new ComplexPasswordAttribute
|
|
{
|
|
MustNumber = true,
|
|
MustLetter = true,
|
|
MustSymbol = false
|
|
};
|
|
|
|
// Act
|
|
var result = attribute.IsValid(password);
|
|
|
|
// Assert
|
|
Assert.Equal(expected, result);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData("Password!", true)]
|
|
[InlineData("Pass!", false)]
|
|
[InlineData("123456", false)]
|
|
[InlineData("abcdef", false)]
|
|
[InlineData("ABCDEF", false)]
|
|
[InlineData("!@#$%^", false)]
|
|
[InlineData("P@ssw0rd", true)]
|
|
[InlineData("P@ss", false)]
|
|
public void IsValid_NoNumberRequirement(string password, bool expected)
|
|
{
|
|
// Arrange
|
|
var attribute = new ComplexPasswordAttribute
|
|
{
|
|
MustNumber = false,
|
|
MustLetter = true,
|
|
MustSymbol = true
|
|
};
|
|
|
|
// Act
|
|
var result = attribute.IsValid(password);
|
|
|
|
// Assert
|
|
Assert.Equal(expected, result);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData("Password123", false)]
|
|
[InlineData("Pass123", false)]
|
|
[InlineData("123456", false)]
|
|
[InlineData("abcdef", false)]
|
|
[InlineData("ABCDEF", false)]
|
|
[InlineData("!@#$%^", false)]
|
|
[InlineData("Pass1", false)]
|
|
[InlineData("P@ssw0rd", true)]
|
|
[InlineData("P@ss", false)]
|
|
public void IsValid_NoLetterRequirement(string password, bool expected)
|
|
{
|
|
// Arrange
|
|
var attribute = new ComplexPasswordAttribute
|
|
{
|
|
MustNumber = true,
|
|
MustLetter = false,
|
|
MustSymbol = true
|
|
};
|
|
|
|
// Act
|
|
var result = attribute.IsValid(password);
|
|
|
|
// Assert
|
|
Assert.Equal(expected, result);
|
|
}
|
|
} |