Skip to content
Snippets Groups Projects
Commit 81aae889 authored by OZGCloud's avatar OZGCloud
Browse files

fix keycloak user password generator

parent 76e62ca2
Branches
Tags
Loading
......@@ -27,9 +27,10 @@ class UserSecretBuilder {
}
String generatePassword() {
var upperCaseCharacter = RandomStringUtils.randomAlphabetic(1).toUpperCase();
var randomString = RandomStringUtils.randomAlphanumeric(7);
return encode(upperCaseCharacter + randomString);
var upperCaseCharacter = RandomStringUtils.randomAlphabetic(8).toUpperCase();
var lowerCaseCharacter = RandomStringUtils.randomAlphabetic(8).toLowerCase();
var numbers = RandomStringUtils.randomNumeric(8);
return encode(upperCaseCharacter + lowerCaseCharacter + numbers);
}
String encode(String strValue) {
......
......@@ -6,9 +6,9 @@ import static org.mockito.Mockito.*;
import java.util.Base64;
import org.apache.commons.lang3.StringUtils;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.RepeatedTest;
import org.junit.jupiter.api.Test;
import org.mockito.Spy;
......@@ -81,35 +81,35 @@ class UserSecretBuilderTest {
@Nested
class TestGeneratePassword {
@Test
@RepeatedTest(100)
void shouldHaveSize() {
var password = decode(builder.generatePassword());
assertThat(password).hasSize(8);
assertThat(password).hasSize(24);
}
@Test
void shouldHaveUpperCaseLetterAtFirst() {
@RepeatedTest(100)
void shouldHaveUpperCaseLetters() {
var password = decode(builder.generatePassword());
assertThat(StringUtils.substring(password, 0, 1)).isUpperCase();
assertThat(password).matches(".*[A-Z].*");
}
@Test
void shouldContainsAlphanumericOnly() {
@RepeatedTest(100)
void shouldHaveLowercaseLetters() {
var password = decode(builder.generatePassword());
assertThat(password).isAlphanumeric();
assertThat(password).matches(".*[a-z].*");
}
@Test
void shouldHaveMiminumLength() {
@RepeatedTest(100)
void shouldContainNumerics() {
var password = decode(builder.generatePassword());
assertThat(password).hasSize(8);
assertThat(password).matches(".*[0-9].*");
}
@Test
@RepeatedTest(100)
void shouldEncode() {
builder.generatePassword();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment