diff --git a/src/main/java/bg/softuni/invoice/model/bind/UserBaseBindingModel.java b/src/main/java/bg/softuni/invoice/model/bind/UserBaseBindingModel.java new file mode 100644 index 0000000..5795620 --- /dev/null +++ b/src/main/java/bg/softuni/invoice/model/bind/UserBaseBindingModel.java @@ -0,0 +1,23 @@ +package bg.softuni.invoice.model.bind; + +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Pattern; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import static bg.softuni.invoice.constant.ErrorMsg.EMAIL_NOT_CORRECT; +import static bg.softuni.invoice.constant.ErrorMsg.EMAIL_NOT_EMPTY; +import static bg.softuni.invoice.constant.ErrorMsg.EMAIL_REGEX; + +@Getter +@Setter +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public abstract class UserBaseBindingModel { + + @NotBlank(message = EMAIL_NOT_EMPTY) + @Pattern(regexp = EMAIL_REGEX, message = EMAIL_NOT_CORRECT) + private String username; + +} diff --git a/src/main/java/bg/softuni/invoice/model/bind/UserBindingModel.java b/src/main/java/bg/softuni/invoice/model/bind/UserBindingModel.java new file mode 100644 index 0000000..9c6bfac --- /dev/null +++ b/src/main/java/bg/softuni/invoice/model/bind/UserBindingModel.java @@ -0,0 +1,33 @@ +package bg.softuni.invoice.model.bind; + +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.Pattern; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.validator.constraints.Length; + +import static bg.softuni.invoice.constant.ErrorMsg.FIRST_NAME_FIRST_LETTER_UPPERCASE; +import static bg.softuni.invoice.constant.ErrorMsg.FIRST_NAME_MIN_LENGTH; +import static bg.softuni.invoice.constant.ErrorMsg.LAST_NAME_FIRST_LETTER_UPPERCASE; +import static bg.softuni.invoice.constant.ErrorMsg.LAST_NAME_MIN_LENGTH; +import static bg.softuni.invoice.constant.ErrorMsg.NAME_REGEX; +import static bg.softuni.invoice.constant.ErrorMsg.STRING_MIN_LENGTH; + +@Getter +@Setter +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public abstract class UserBindingModel extends UserBaseBindingModel { + + @NotEmpty(message = FIRST_NAME_MIN_LENGTH) + @Length(min = STRING_MIN_LENGTH, message = FIRST_NAME_MIN_LENGTH) + @Pattern(regexp = NAME_REGEX, message = FIRST_NAME_FIRST_LETTER_UPPERCASE) + private String firstName; + + @NotEmpty(message = LAST_NAME_MIN_LENGTH) + @Length(min = STRING_MIN_LENGTH, message = LAST_NAME_MIN_LENGTH) + @Pattern(regexp = NAME_REGEX, message = LAST_NAME_FIRST_LETTER_UPPERCASE) + private String lastName; + +} diff --git a/src/main/java/bg/softuni/invoice/model/bind/UserLoginBindingModel.java b/src/main/java/bg/softuni/invoice/model/bind/UserLoginBindingModel.java index 1a0467e..cb5e47b 100644 --- a/src/main/java/bg/softuni/invoice/model/bind/UserLoginBindingModel.java +++ b/src/main/java/bg/softuni/invoice/model/bind/UserLoginBindingModel.java @@ -1,23 +1,14 @@ package bg.softuni.invoice.model.bind; import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.Pattern; import lombok.Getter; import lombok.Setter; -import static bg.softuni.invoice.constant.ErrorMsg.EMAIL_NOT_CORRECT; -import static bg.softuni.invoice.constant.ErrorMsg.EMAIL_NOT_EMPTY; -import static bg.softuni.invoice.constant.ErrorMsg.EMAIL_REGEX; import static bg.softuni.invoice.constant.ErrorMsg.PASSWORD_NOT_EMPTY; @Setter @Getter -public class UserLoginBindingModel { - - @NotBlank(message = EMAIL_NOT_EMPTY) - @Pattern(regexp = EMAIL_REGEX, - message = EMAIL_NOT_CORRECT) - private String username; +public class UserLoginBindingModel extends UserBaseBindingModel { @NotBlank(message = PASSWORD_NOT_EMPTY) private String password; diff --git a/src/main/java/bg/softuni/invoice/model/bind/UserProfileBindingModel.java b/src/main/java/bg/softuni/invoice/model/bind/UserProfileBindingModel.java index dc765ec..bde2150 100644 --- a/src/main/java/bg/softuni/invoice/model/bind/UserProfileBindingModel.java +++ b/src/main/java/bg/softuni/invoice/model/bind/UserProfileBindingModel.java @@ -1,39 +1,12 @@ package bg.softuni.invoice.model.bind; -import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.Pattern; import lombok.Getter; import lombok.Setter; -import org.hibernate.validator.constraints.Length; - -import static bg.softuni.invoice.constant.ErrorMsg.EMAIL_NOT_CORRECT; -import static bg.softuni.invoice.constant.ErrorMsg.EMAIL_NOT_EMPTY; -import static bg.softuni.invoice.constant.ErrorMsg.EMAIL_REGEX; -import static bg.softuni.invoice.constant.ErrorMsg.FIRST_NAME_FIRST_LETTER_UPPERCASE; -import static bg.softuni.invoice.constant.ErrorMsg.FIRST_NAME_MIN_LENGTH; -import static bg.softuni.invoice.constant.ErrorMsg.LAST_NAME_FIRST_LETTER_UPPERCASE; -import static bg.softuni.invoice.constant.ErrorMsg.LAST_NAME_MIN_LENGTH; -import static bg.softuni.invoice.constant.ErrorMsg.NAME_REGEX; -import static bg.softuni.invoice.constant.ErrorMsg.STRING_MIN_LENGTH; @Setter @Getter -public class UserProfileBindingModel { +public class UserProfileBindingModel extends UserBindingModel { private String id; - @NotEmpty(message = EMAIL_NOT_EMPTY) - @Pattern(regexp = EMAIL_REGEX, message = EMAIL_NOT_CORRECT) - private String username; - - @NotEmpty(message = FIRST_NAME_MIN_LENGTH) - @Length(min = STRING_MIN_LENGTH, message = FIRST_NAME_MIN_LENGTH) - @Pattern(regexp = NAME_REGEX, message = FIRST_NAME_FIRST_LETTER_UPPERCASE) - private String firstName; - - @NotEmpty(message = LAST_NAME_MIN_LENGTH) - @Length(min = STRING_MIN_LENGTH, message = LAST_NAME_MIN_LENGTH) - @Pattern(regexp = NAME_REGEX, message = LAST_NAME_FIRST_LETTER_UPPERCASE) - private String lastName; - } diff --git a/src/main/java/bg/softuni/invoice/model/bind/UserRegisterBindingModel.java b/src/main/java/bg/softuni/invoice/model/bind/UserRegisterBindingModel.java index c2089d7..5ccecfa 100644 --- a/src/main/java/bg/softuni/invoice/model/bind/UserRegisterBindingModel.java +++ b/src/main/java/bg/softuni/invoice/model/bind/UserRegisterBindingModel.java @@ -1,40 +1,17 @@ package bg.softuni.invoice.model.bind; import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.Pattern; import lombok.Getter; import lombok.Setter; import org.hibernate.validator.constraints.Length; -import static bg.softuni.invoice.constant.ErrorMsg.EMAIL_NOT_CORRECT; -import static bg.softuni.invoice.constant.ErrorMsg.EMAIL_NOT_EMPTY; -import static bg.softuni.invoice.constant.ErrorMsg.EMAIL_REGEX; -import static bg.softuni.invoice.constant.ErrorMsg.FIRST_NAME_FIRST_LETTER_UPPERCASE; -import static bg.softuni.invoice.constant.ErrorMsg.FIRST_NAME_MIN_LENGTH; -import static bg.softuni.invoice.constant.ErrorMsg.LAST_NAME_FIRST_LETTER_UPPERCASE; -import static bg.softuni.invoice.constant.ErrorMsg.LAST_NAME_MIN_LENGTH; -import static bg.softuni.invoice.constant.ErrorMsg.NAME_REGEX; import static bg.softuni.invoice.constant.ErrorMsg.PASSWORD_MIN_LENGTH; import static bg.softuni.invoice.constant.ErrorMsg.PASSWORD_NOT_EMPTY; import static bg.softuni.invoice.constant.ErrorMsg.STRING_MIN_LENGTH; @Setter @Getter -public class UserRegisterBindingModel { - - @NotEmpty(message = EMAIL_NOT_EMPTY) - @Pattern(regexp = EMAIL_REGEX, message = EMAIL_NOT_CORRECT) - private String username; - - @NotEmpty(message = FIRST_NAME_MIN_LENGTH) - @Length(min = STRING_MIN_LENGTH, message = FIRST_NAME_MIN_LENGTH) - @Pattern(regexp = NAME_REGEX, message = FIRST_NAME_FIRST_LETTER_UPPERCASE) - private String firstName; - - @NotEmpty(message = LAST_NAME_MIN_LENGTH) - @Length(min = STRING_MIN_LENGTH, message = LAST_NAME_MIN_LENGTH) - @Pattern(regexp = NAME_REGEX, message = LAST_NAME_FIRST_LETTER_UPPERCASE) - private String lastName; +public class UserRegisterBindingModel extends UserBindingModel { @NotEmpty(message = PASSWORD_NOT_EMPTY) @Length(min = STRING_MIN_LENGTH, message = PASSWORD_MIN_LENGTH) diff --git a/src/test/java/bg/softuni/invoice/model/bind/UserProfileBindingModelTest.java b/src/test/java/bg/softuni/invoice/model/bind/UserProfileBindingModelTest.java index 8c908ec..0609a8b 100644 --- a/src/test/java/bg/softuni/invoice/model/bind/UserProfileBindingModelTest.java +++ b/src/test/java/bg/softuni/invoice/model/bind/UserProfileBindingModelTest.java @@ -79,7 +79,7 @@ void username_withValidValues_shouldPassValidation(String validUsername) { @ParameterizedTest @CsvSource({ - "' '", + "@", "plain@", "email.com" }) diff --git a/src/test/java/bg/softuni/invoice/model/bind/UserRegisterBindingModelTest.java b/src/test/java/bg/softuni/invoice/model/bind/UserRegisterBindingModelTest.java index e0ce39a..4e9a34a 100644 --- a/src/test/java/bg/softuni/invoice/model/bind/UserRegisterBindingModelTest.java +++ b/src/test/java/bg/softuni/invoice/model/bind/UserRegisterBindingModelTest.java @@ -67,7 +67,7 @@ void username_withValidValues_shouldPassValidation(String validUsername) { @ParameterizedTest @CsvSource({ - "' '", + "@", "invalid@", "plainaddress" })