BAEL-917 Testing with Google Truth (#1874)
* BAEL-917 Testing with Google Truth * BAEL-917 Testing with Google Truth
This commit is contained in:
committed by
KevinGilmore
parent
3a34f906a2
commit
378d20f053
@@ -0,0 +1,57 @@
|
||||
package com.baeldung.testing.truth;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
public class User implements Comparable<User> {
|
||||
private String name = "John Doe";
|
||||
private List<String> emails = Arrays.asList("contact@baeldung.com", "staff@baeldung.com");
|
||||
|
||||
public User() {
|
||||
}
|
||||
|
||||
public User(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public List<String> getEmails() {
|
||||
return emails;
|
||||
}
|
||||
|
||||
public void setEmails(List<String> emails) {
|
||||
this.emails = emails;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
int hash = 5;
|
||||
hash = 37 * hash + Objects.hashCode(this.name);
|
||||
return hash;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (obj == null || getClass() != obj.getClass()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
final User other = (User) obj;
|
||||
return Objects.equals(this.name, other.name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(User o) {
|
||||
return this.getName()
|
||||
.compareToIgnoreCase(o.getName());
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
package com.baeldung.testing.truth;
|
||||
|
||||
import com.google.common.truth.ComparableSubject;
|
||||
import com.google.common.truth.FailureStrategy;
|
||||
import com.google.common.truth.IterableSubject;
|
||||
import com.google.common.truth.SubjectFactory;
|
||||
import com.google.common.truth.Truth;
|
||||
|
||||
public class UserSubject extends ComparableSubject<UserSubject, User> {
|
||||
|
||||
private UserSubject(FailureStrategy failureStrategy, User target) {
|
||||
super(failureStrategy, target);
|
||||
}
|
||||
|
||||
private static final SubjectFactory<UserSubject, User> USER_SUBJECT_FACTORY = new SubjectFactory<UserSubject, User>() {
|
||||
@Override
|
||||
public UserSubject getSubject(FailureStrategy failureStrategy, User target) {
|
||||
return new UserSubject(failureStrategy, target);
|
||||
}
|
||||
};
|
||||
|
||||
public static UserSubject assertThat(User user) {
|
||||
return Truth.assertAbout(USER_SUBJECT_FACTORY)
|
||||
.that(user);
|
||||
}
|
||||
|
||||
// Our API begins here
|
||||
public void hasName(String name) {
|
||||
if (!actual().getName()
|
||||
.equals(name)) {
|
||||
fail("has name", name);
|
||||
}
|
||||
}
|
||||
|
||||
public void hasNameIgnoringCase(String name) {
|
||||
if (!actual().getName()
|
||||
.equalsIgnoreCase(name)) {
|
||||
fail("has name ignoring case", name);
|
||||
}
|
||||
}
|
||||
|
||||
public IterableSubject emails() {
|
||||
return Truth.assertThat(actual().getEmails());
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user