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.

36 lines
1.1 KiB

  1. import org.junit.jupiter.api.BeforeAll;
  2. import org.junit.jupiter.api.Test;
  3. import java.util.regex.Pattern;
  4. import static org.junit.jupiter.api.Assertions.*;
  5. class PasswordGeneratorTest {
  6. static PasswordGenerator passwordGenerator;
  7. @BeforeAll
  8. static void init() {
  9. passwordGenerator = new PasswordGenerator();
  10. }
  11. @Test
  12. void testGeneratedPasswordLength() {
  13. assertNotSame("", passwordGenerator.generateRandomPassword());
  14. assertEquals(passwordGenerator.generateRandomPassword().length(), passwordGenerator.getLength());
  15. passwordGenerator.setLength(33);
  16. assertEquals(passwordGenerator.getLength(), 33);
  17. assertEquals(passwordGenerator.generateRandomPassword().length(), passwordGenerator.getLength());
  18. }
  19. @Test
  20. void testPasswordLowercaseRequirement() {
  21. assertTrue(Pattern.compile("^(?=.*[a-z]).+$").matcher(passwordGenerator.generateRandomPassword()).matches());
  22. }
  23. @Test
  24. void testPasswordUppercaseRequirement() {
  25. assertTrue(Pattern.compile("^(?=.*[A-Z]).+$").matcher(passwordGenerator.generateRandomPassword()).matches());
  26. }
  27. }