From 5258b393bc5aab1d170338dd3bdddc83893a8623 Mon Sep 17 00:00:00 2001 From: keede Date: Sun, 24 Mar 2024 14:57:31 +0900 Subject: [PATCH] add to Sign up Nickname Pattern --- .../keede7/pattern/model/SignupPattern.java | 3 + .../java/io/keede7/util/SignupRegexUtil.java | 11 ++++ .../pattern/SignupPatternTestModelTests.java | 66 +++++++++++++++++++ .../pattern/model/SignupPatternTestModel.java | 3 + 4 files changed, 83 insertions(+) diff --git a/src/main/java/io/keede7/pattern/model/SignupPattern.java b/src/main/java/io/keede7/pattern/model/SignupPattern.java index 299eb4a..ac3cb8a 100644 --- a/src/main/java/io/keede7/pattern/model/SignupPattern.java +++ b/src/main/java/io/keede7/pattern/model/SignupPattern.java @@ -17,6 +17,8 @@ public final class SignupPattern extends BaseRegexUtils { range -> Pattern.compile(combineWithLength(SignupPatternExpression.PASSWORD, range)); public static final Function USER_ID_PATTERN_FUNCTION = range -> Pattern.compile(combineWithLength(SignupPatternExpression.USER_ID, range)); + public static final Function NICKNAME_PATTERN_FUNCTION = + range -> Pattern.compile(combineWithLength(SignupPatternExpression.NICKNAME, range)); private static final int MIN_LENGTH = 2; @@ -35,6 +37,7 @@ private static final class SignupPatternExpression { public static final String USER_ID = "[a-zA-Z0-9]"; public static final String PHONE = "01[016789]-?([0-9]{3,4})-?([0-9]{4})"; public static final String PASSWORD = "(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[!@#$%^&*()_+])[A-Za-z0-9!@#$%^&*()_+]"; + public static final String NICKNAME = "[a-zA-Z0-9 ]"; } } diff --git a/src/main/java/io/keede7/util/SignupRegexUtil.java b/src/main/java/io/keede7/util/SignupRegexUtil.java index 06096ce..e6f2619 100644 --- a/src/main/java/io/keede7/util/SignupRegexUtil.java +++ b/src/main/java/io/keede7/util/SignupRegexUtil.java @@ -59,4 +59,15 @@ public static boolean checkPassword(String input, int... range) { return isCheck(pattern, input); } + /** + * This is the function to change your nickname. Users can limit the length they wish to provide. + * @param input + * @param range + * @return + */ + public static boolean checkNickname(String input, int... range) { + Pattern pattern = NICKNAME_PATTERN_FUNCTION.apply(range); + return isCheck(pattern, input); + } + } diff --git a/src/test/java/io/keede7/pattern/SignupPatternTestModelTests.java b/src/test/java/io/keede7/pattern/SignupPatternTestModelTests.java index d829c96..277670e 100644 --- a/src/test/java/io/keede7/pattern/SignupPatternTestModelTests.java +++ b/src/test/java/io/keede7/pattern/SignupPatternTestModelTests.java @@ -1,5 +1,6 @@ package io.keede7.pattern; +import io.keede7.pattern.model.SignupPatternTestModel; import io.keede7.util.config.TestValidator; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; @@ -250,4 +251,69 @@ void fail() { ); } } + + @Nested + class NicknamePattern { + + final Pattern nicknamePattern = NICKNAME_PATTERN_FUNCTION.apply(new int[]{4, 12}); + + @Test + void success() { + final String model1 = "test "; + final String model2 = "test test"; + final String model3 = "209323"; + final String model4 = "239test"; + final String model5 = " 239 test "; + + assertAll( + () -> assertTrue( + isCheck(nicknamePattern, model1.trim()) + ), + () -> assertTrue( + isCheck(nicknamePattern, model2.trim()) + ), + () -> assertTrue( + isCheck(nicknamePattern, model3.trim()) + ), + () -> assertTrue( + isCheck(nicknamePattern, model4.trim()) + ), + () -> assertTrue( + isCheck(nicknamePattern, model5.trim()) + ) + ); + } + + @Test + void fail() { + final String model1 = "test#@"; + final String model2 = "4324##"; + final String model3 = "%#$@%#$"; + final String model4 = "232"; + final String model5 = " 232 "; + final String model6 = "3203929310222"; + + assertAll( + () -> assertFalse( + isCheck(nicknamePattern, model1.trim()) + ), + () -> assertFalse( + isCheck(nicknamePattern, model2.trim()) + ), + () -> assertFalse( + isCheck(nicknamePattern, model3.trim()) + ), + () -> assertFalse( + isCheck(nicknamePattern, model4.trim()) + ), + () -> assertFalse( + isCheck(nicknamePattern, model5.trim()) + ), + () -> assertFalse( + isCheck(nicknamePattern, model6.trim()) + ) + ); + } + } + } \ No newline at end of file diff --git a/src/test/java/io/keede7/pattern/model/SignupPatternTestModel.java b/src/test/java/io/keede7/pattern/model/SignupPatternTestModel.java index 28a8f04..63b9353 100644 --- a/src/test/java/io/keede7/pattern/model/SignupPatternTestModel.java +++ b/src/test/java/io/keede7/pattern/model/SignupPatternTestModel.java @@ -17,6 +17,8 @@ public final class SignupPatternTestModel extends TestBaseRegexUtils { range -> Pattern.compile(combineWithLength(SignupPatternExpression.PASSWORD, range)); public static final Function USER_ID_PATTERN_FUNCTION = range -> Pattern.compile(combineWithLength(SignupPatternExpression.USER_ID, range)); + public static final Function NICKNAME_PATTERN_FUNCTION = + range -> Pattern.compile(combineWithLength(SignupPatternExpression.NICKNAME, range)); private static final int MIN_LENGTH = 2; @@ -35,6 +37,7 @@ private static final class SignupPatternExpression { public static final String USER_ID = "[a-zA-Z0-9]"; public static final String PHONE = "01[016789]-?([0-9]{3,4})-?([0-9]{4})"; public static final String PASSWORD = "(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[!@#$%^&*()_+])[A-Za-z0-9!@#$%^&*()_+]"; + public static final String NICKNAME = "[a-zA-Z0-9 ]"; } }