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.
|
|
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()); } }
|