diff --git a/src/test/java/es/uvigo/esei/daa/matchers/IsEqualToPet.java b/src/test/java/es/uvigo/esei/daa/matchers/IsEqualToPet.java new file mode 100644 index 0000000000000000000000000000000000000000..2924060b489a9154d1d7ac11e1d8bef4bb02177a --- /dev/null +++ b/src/test/java/es/uvigo/esei/daa/matchers/IsEqualToPet.java @@ -0,0 +1,42 @@ +package es.uvigo.esei.daa.matchers; + +import static java.util.Objects.requireNonNull; + +import org.hamcrest.Factory; +import org.hamcrest.Matcher; + +import es.uvigo.esei.daa.entities.Pet; + +public class IsEqualToPet extends IsEqualToEntity { + + public IsEqualToPet(Pet entity) { + super(entity); + } + + @Override + protected boolean matchesSafely(Pet actual) { + this.clearDescribeTo(); + + if (actual == null) { + this.addTemplatedDescription("actual", expected.toString()); + return false; + } else { + return checkAttribute("idPet", Pet::getIdPet, actual) + && checkAttribute("name", Pet::getName, actual) + && checkAttribute("idMaster", Pet::getIdMaster, actual); + } + } + + + @Factory + public static IsEqualToPet equalsToPet(Pet Pet) { + return new IsEqualToPet(Pet); + } + + + @Factory + public static Matcher> containsPetsInAnyOrder(Pet ... Pets) { + return containsEntityInAnyOrder(IsEqualToPet::equalsToPet, Pets); + } + +}