Als was ist javax.validation.constraints.Email definiert?
Ich habe eine User-Klasse
und eine hierauf angewendete Test-Klasse
Für die Funktion testUserWithEmailLength255MustBeTrue(), dass
Ich habe eine User-Klasse
Code:
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import org.hibernate.annotations.CreationTimestamp;
import org.hibernate.annotations.UpdateTimestamp;
import org.hibernate.validator.constraints.Length;
@Entity
@Table(name = "user")
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@CreationTimestamp
private LocalDateTime created_at;
@JoinColumn(name = "created_by", referencedColumnName = "id")
@ManyToOne(fetch = FetchType.LAZY)
private User created_by;
@OneToMany(mappedBy = "created_by", fetch = FetchType.LAZY)
private List<User> createdUsers;
@UpdateTimestamp
private LocalDateTime updated_at;
@JoinColumn(name = "updated_by", referencedColumnName = "id")
@ManyToOne(fetch = FetchType.LAZY)
private User updated_by;
@OneToMany(mappedBy = "updated_by", fetch = FetchType.LAZY)
private List<User> updatedUsers;
@NotBlank
@Length(min = 3, max = 255)
private String firstname;
@NotBlank
@Length(min = 3, max = 255)
private String lastname;
@NotBlank
@Length(min = 5, max = 255)
@Email(message = "Email should be valid")
private String email;
@NotBlank
@Length(min = 3, max = 255)
private String password;
public User() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public LocalDateTime getCreatedAt() {
return created_at;
}
public void setCreatedAt(LocalDateTime created_at) {
this.created_at = created_at;
}
public LocalDateTime getUpdatedAt() {
return updated_at;
}
public void setUpdatedAt(LocalDateTime updated_at) {
this.updated_at = updated_at;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public String getLastname() {
return lastname;
}
public User getCreatedBy() {
return created_by;
}
public void setCreatedBy(User created_by) {
this.created_by = created_by;
}
public List<User> getCreatedUsers() {
return createdUsers;
}
public void setCreatedUsers(List<User> userList) {
this.createdUsers = userList;
}
public User getUpdatedBy() {
return updated_by;
}
public List<User> getUpdatedUsers() {
return updatedUsers;
}
public void setUpdatedUsers(List<User> updatedUsers) {
this.updatedUsers = updatedUsers;
}
public void setUpdatedBy(User updated_by) {
this.updated_by = updated_by;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [id=" + id + ", created_at=" + created_at + ", created_by=" + created_by + ", createdUsers="
+ createdUsers + ", updated_at=" + updated_at + ", updated_by=" + updated_by + ", updatedUsers="
+ updatedUsers + ", firstname=" + firstname + ", lastname=" + lastname + ", email=" + email
+ ", password=" + password + "]";
}
}
und eine hierauf angewendete Test-Klasse
Code:
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.util.Set;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import org.apache.commons.lang3.RandomStringUtils;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class UserTest {
private static Validator validator;
@BeforeAll
public static void init() {
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
validator = factory.getValidator();
}
@Test
void testUser() {
User user = new User();
user.setFirstname("firstname");
user.setLastname("lastname");
user.setEmail("email@email.com");
user.setPassword("password");
Set<ConstraintViolation<User>> violations = validator.validate(user);
assertTrue(violations.isEmpty());
}
@Test
void testUserWithFirstnameNullMustBeFalse() {
User user = new User();
user.setFirstname(null);
user.setLastname("lastname");
user.setEmail("email@email.com");
user.setPassword("password");
Set<ConstraintViolation<User>> violations = validator.validate(user);
assertFalse(violations.isEmpty());
}
@Test
void testUserWithFirstnameBlankMustBeFalse() {
User user = new User();
user.setFirstname(" ");
user.setLastname("lastname");
user.setEmail("email@email.com");
user.setPassword("password");
Set<ConstraintViolation<User>> violations = validator.validate(user);
assertFalse(violations.isEmpty());
}
@Test
void testUserWithFirstname2LengthMustBeFalse() {
User user = new User();
user.setFirstname(RandomStringUtils.random(2));
user.setLastname("lastname");
user.setEmail("email@email.com");
user.setPassword("password");
Set<ConstraintViolation<User>> violations = validator.validate(user);
assertFalse(violations.isEmpty());
}
@Test
void testUserWithFirstname3LengthMustBeTrue() {
User user = new User();
user.setFirstname(RandomStringUtils.random(3));
user.setLastname("lastname");
user.setEmail("email@email.com");
user.setPassword("password");
Set<ConstraintViolation<User>> violations = validator.validate(user);
assertTrue(violations.isEmpty());
}
@Test
void testUserWithFirstname255LengthMustBeTrue() {
User user = new User();
user.setFirstname(RandomStringUtils.random(255));
user.setLastname("lastname");
user.setEmail("email@email.com");
user.setPassword("password");
Set<ConstraintViolation<User>> violations = validator.validate(user);
assertTrue(violations.isEmpty());
}
@Test
void testUserWithFirstname256LengthMustBeFalse() {
User user = new User();
user.setFirstname(RandomStringUtils.random(256));
user.setLastname("lastname");
user.setEmail("email@email.com");
user.setPassword("password");
Set<ConstraintViolation<User>> violations = validator.validate(user);
assertFalse(violations.isEmpty());
}
@Test
void testUserWithLastnameNullMustBeFalse() {
User user = new User();
user.setFirstname("firstname");
user.setLastname(null);
user.setEmail("email@email.com");
user.setPassword("password");
Set<ConstraintViolation<User>> violations = validator.validate(user);
assertFalse(violations.isEmpty());
}
@Test
void testUserWithLastnameBlankMustBeFalse() {
User user = new User();
user.setFirstname("firstname");
user.setLastname(" ");
user.setEmail("email@email.com");
user.setPassword("password");
Set<ConstraintViolation<User>> violations = validator.validate(user);
assertFalse(violations.isEmpty());
}
@Test
void testUserWithLastname2LengthMustBeFalse() {
User user = new User();
user.setFirstname("firstname");
user.setLastname(RandomStringUtils.random(2));
user.setEmail("email@email.com");
user.setPassword("password");
Set<ConstraintViolation<User>> violations = validator.validate(user);
assertFalse(violations.isEmpty());
}
@Test
void testUserWithLastname3LengthMustBeTrue() {
User user = new User();
user.setFirstname("firstname");
user.setLastname(RandomStringUtils.random(3));
user.setEmail("email@email.com");
user.setPassword("password");
Set<ConstraintViolation<User>> violations = validator.validate(user);
assertTrue(violations.isEmpty());
}
@Test
void testUserWithLastname255LengthMustBeTrue() {
User user = new User();
user.setFirstname("firstname");
user.setLastname(RandomStringUtils.random(255));
user.setEmail("email@email.com");
user.setPassword("password");
Set<ConstraintViolation<User>> violations = validator.validate(user);
assertTrue(violations.isEmpty());
}
@Test
void testUserWithLastname256LengthMustBeFalse() {
User user = new User();
user.setFirstname("firstname");
user.setLastname(RandomStringUtils.random(256));
user.setEmail("email@email.com");
user.setPassword("password");
Set<ConstraintViolation<User>> violations = validator.validate(user);
assertFalse(violations.isEmpty());
}
@Test
void testUserWithWrongEmailMustBeFalse() {
User user = new User();
user.setFirstname("firstname");
user.setLastname("lastname");
user.setEmail("emailemail.com");
user.setPassword("password");
Set<ConstraintViolation<User>> violations = validator.validate(user);
assertFalse(violations.isEmpty());
}
@Test
void testUserWithEmailNullMustBeFalse() {
User user = new User();
user.setFirstname("firstname");
user.setLastname("lastname");
user.setEmail(null);
user.setPassword("password");
Set<ConstraintViolation<User>> violations = validator.validate(user);
assertFalse(violations.isEmpty());
}
@Test
void testUserWithEmailLength255MustBeTrue() {
User user = new User();
String email = RandomStringUtils.random(229) + "@" + RandomStringUtils.random(22) + ".com";
assertTrue(email.length() == 255);
user.setFirstname("firstname");
user.setLastname("lastname");
user.setEmail(email);
user.setPassword("password");
Set<ConstraintViolation<User>> violations = validator.validate(user);
assertTrue(violations.isEmpty());
}
@Test
void testUserWithEmailLength256MustBeFalse() {
User user = new User();
String email = RandomStringUtils.random(229) + "@" + RandomStringUtils.random(22) + ".com";
assertTrue(email.length() == 256);
user.setFirstname("firstname");
user.setLastname("lastname");
user.setEmail(email);
user.setPassword("password");
Set<ConstraintViolation<User>> violations = validator.validate(user);
assertFalse(violations.isEmpty());
}
}
Für die Funktion testUserWithEmailLength255MustBeTrue(), dass
Obwohl die Funktion eigentlich True ergeben müsste. Deshalb meine Frage wie ist @Email definiert? Im Netz konnte ich nichts finden.org.opentest4j.AssertionFailedError: expected: <true> but was: <false>