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.
50 lines
1.9 KiB
50 lines
1.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());
|
|
}
|
|
}
|