You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
2.9 KiB
72 lines
2.9 KiB
import org.junit.jupiter.api.BeforeAll;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
import java.util.regex.Pattern;
|
|
|
|
import static org.junit.jupiter.api.Assertions.*;
|
|
|
|
class PasswordGeneratorTest {
|
|
|
|
static PasswordGenerator passwordGenerator;
|
|
|
|
@BeforeAll
|
|
static void init() {
|
|
passwordGenerator = new PasswordGenerator();
|
|
}
|
|
|
|
@Test
|
|
void testGeneratedPasswordLength() {
|
|
assertNotSame("", passwordGenerator.generateRandomPassword());
|
|
assertEquals(passwordGenerator.generateRandomPassword().length(), passwordGenerator.getLength());
|
|
|
|
passwordGenerator.setLength(33);
|
|
assertEquals(passwordGenerator.getLength(), 33);
|
|
assertEquals(passwordGenerator.generateRandomPassword().length(), passwordGenerator.getLength());
|
|
}
|
|
|
|
@Test
|
|
void testPasswordLowercaseRequirement() {
|
|
passwordGenerator.setUseLowercase(false);
|
|
assertFalse(Pattern.compile("^(?=.*[a-z]).+$").matcher(passwordGenerator.generateRandomPassword()).matches());
|
|
passwordGenerator.setUseLowercase(true);
|
|
assertTrue(Pattern.compile("^(?=.*[a-z]).+$").matcher(passwordGenerator.generateRandomPassword()).matches());
|
|
}
|
|
|
|
@Test
|
|
void testPasswordUppercaseRequirement() {
|
|
passwordGenerator.setUseUppercase(false);
|
|
assertFalse(Pattern.compile("^(?=.*[A-Z]).+$").matcher(passwordGenerator.generateRandomPassword()).matches());
|
|
passwordGenerator.setUseUppercase(true);
|
|
assertTrue(Pattern.compile("^(?=.*[A-Z]).+$").matcher(passwordGenerator.generateRandomPassword()).matches());
|
|
}
|
|
|
|
@Test
|
|
void testPasswordDigitsRequirement() {
|
|
passwordGenerator.setUseDigits(false);
|
|
assertFalse(Pattern.compile("^(?=.*\\d).+$").matcher(passwordGenerator.generateRandomPassword()).matches());
|
|
passwordGenerator.setUseDigits(true);
|
|
assertTrue(Pattern.compile("^(?=.*\\d).+$").matcher(passwordGenerator.generateRandomPassword()).matches());
|
|
}
|
|
|
|
@Test
|
|
void testPasswordSpecialCharactersRequirement() {
|
|
passwordGenerator.setUseSpecialCharacters(false);
|
|
assertFalse(Pattern.compile("^(?=.*[.!?=@#$()%^&/*_\\-+]).+$").matcher(passwordGenerator.generateRandomPassword()).matches());
|
|
passwordGenerator.setUseSpecialCharacters(true);
|
|
assertTrue(Pattern.compile("^(?=.*[.!?=@#$()%^&/*_\\-+]).+$").matcher(passwordGenerator.generateRandomPassword()).matches());
|
|
}
|
|
|
|
@Test
|
|
void testPasswordForEveryRequiredCharacter() {
|
|
passwordGenerator.setRequireEveryConfiguredCharacterType(true);
|
|
PasswordValidator passwordValidator = new PasswordValidator();
|
|
assertTrue(passwordValidator.validate(passwordGenerator.generateRandomPassword()));
|
|
}
|
|
|
|
@Test
|
|
void testShufflePassword() {
|
|
String testInput = "ABcdefgh123";
|
|
assertNotEquals(passwordGenerator.shufflePassword(testInput), testInput);
|
|
assertEquals(passwordGenerator.shufflePassword(testInput).length(), testInput.length());
|
|
}
|
|
}
|