Commit 507acd64 authored by Alex Segers's avatar Alex Segers

[AFP-73] Install Spring Validation for model validations & TestNG for unit tests [@asegers]

parent fb90f221
......@@ -49,8 +49,20 @@
<artifactId>javafaker</artifactId>
<version>1.0.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-validation -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
<version>2.4.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.4.0</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
......
package com.afp.ordermanagement.model;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.lang.NonNull;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.lang.reflect.Field;
import static java.util.Objects.isNull;
@Data
@NoArgsConstructor
@Document(collection = "managers")
public class Manager {
@Id
private String id;
private String managerId;
// @NotBlank
@NonNull
@Size(min = 1, max = 250, message = "firstName & lastName must be between 1 & 250 characters")
private String firstName, lastName;
@Email
private String email;
private String googleId;
private String imageUrl;
static public Manager combine(Manager target, Manager source) {
try {
for (Field field: Manager.class.getDeclaredFields()) {
String fieldName = field.getName();
Object sourceValue = field.get(source);
if (!isNull(sourceValue) && !fieldName.equals("id"))
field.set(target, sourceValue);
}
} catch (Exception ignore) { }
return target;
}
}
package com.afp.ordermanagement.model;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Document(collection = "managers")
public class Manager {
@Id
private String id;
private String managerId;
private String email;
private String firstName;
private String lastName;
private String passwordDigest;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getManagerId() {
return managerId;
}
public void setManagerId(String managerId) {
this.managerId = managerId;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getPasswordDigest() {
return passwordDigest;
}
public void setPasswordDigest(String passwordDigest) {
this.passwordDigest = passwordDigest;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment