Skip to content

Commit 6353d7c

Browse files
authored
Merge pull request #53 from Chat-Your-Way/CHAT-154-bugfix-nickname-field-not-accepted-special-symbols
Chat 154 bugfix nickname field not accepted special symbols
2 parents 9927f5f + 7ccac22 commit 6353d7c

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

src/main/java/com/chat/yourway/annotation/validator/NicknameValidator.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010

1111
public class NicknameValidator implements ConstraintValidator<NicknameValidation, String> {
1212

13-
private static final Pattern NICKNAME_PATTERN = Pattern.compile("^[a-zA-Z0-9а-яА-ЯІіЇї]{4,20}$");
13+
private static final Pattern NICKNAME_PATTERN = Pattern.compile(
14+
"^[a-zA-Z0-9а-яА-ЯІіЇї!@#$%^&*_\\-+=~?]{4,20}$");
1415

1516
@Override
1617
public boolean isValid(String value, ConstraintValidatorContext context) {
@@ -23,13 +24,15 @@ public boolean isValid(String value, ConstraintValidatorContext context) {
2324
return false;
2425
} else if (!NICKNAME_PATTERN.matcher(value).matches()) {
2526
context
26-
.buildConstraintViolationWithTemplate("The nickname is invalid")
27+
.buildConstraintViolationWithTemplate(
28+
"The nickname should be 4-20 characters long and include only letters, numbers or "
29+
+ "symbols [! @ # $ % ^ & * _ - + = ~ ?]")
2730
.addConstraintViolation();
2831
return false;
2932
} else if (PATTERN_SPACE.matcher(value).matches()) {
3033
context
31-
.buildConstraintViolationWithTemplate("The nickname should not include space")
32-
.addConstraintViolation();
34+
.buildConstraintViolationWithTemplate("The nickname should not include space")
35+
.addConstraintViolation();
3336
return false;
3437
}
3538

src/test/java/com/chat/yourway/unit/annotation/validator/NicknameValidationValidatorTest.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,19 @@ public void shouldPassValidator_whenUserInputNickname() {
3838
var nicknameFirstExample = "user123";
3939
var nicknameSecondExample = "Username123";
4040
var nicknameThirdExample = "abcd1234";
41+
var nicknameWithSymbol = "Nickname!";
4142

4243
// When
4344
var isValidFirstExample = nicknameValidator.isValid(nicknameFirstExample, context);
4445
var isValidSecondExample = nicknameValidator.isValid(nicknameSecondExample, context);
4546
var isValidThirdExample = nicknameValidator.isValid(nicknameThirdExample, context);
47+
var isValid4Example = nicknameValidator.isValid(nicknameWithSymbol, context);
4648

4749
// Then
4850
assertTrue(isValidFirstExample);
4951
assertTrue(isValidSecondExample);
5052
assertTrue(isValidThirdExample);
53+
assertTrue(isValid4Example);
5154
}
5255

5356
@DisplayName(
@@ -73,7 +76,7 @@ public void shouldFailValidator_whenUserInputNicknameWithInvalidLength() {
7376
public void shouldFailValidator_whenUserInputNicknameWithInvalidCharacters() {
7477
// Given
7578
var nicknameFirstExample = "user 123";
76-
var nicknameSecondExample = "user@123";
79+
var nicknameSecondExample = "user)123";
7780

7881
// When
7982
var isValidFirstExample = nicknameValidator.isValid(nicknameFirstExample, context);

0 commit comments

Comments
 (0)