package edu.ualberta.med.biobank.test; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import javax.validation.ConstraintViolation; import javax.validation.ConstraintViolationException; import junit.framework.Assert; import org.hibernate.Hibernate; public class AssertMore { public static void assertContainsTemplate(ConstraintViolationException e, String messageTemplate) { Collection<String> messageTemplates = new ArrayList<String>(); for (ConstraintViolation<?> violation : e.getConstraintViolations()) { messageTemplates.add(violation.getMessageTemplate()); } if (!messageTemplates.contains(messageTemplate)) { Assert.fail(ConstraintViolationException.class.getSimpleName() + " does not contain an expected " + ConstraintViolation.class.getName() + " with a message template of " + messageTemplate + ". Instead, it contains the message template(s): " + Arrays.toString(messageTemplates.toArray())); } } public static void assertMessageContains(Throwable t, String substring) { if (!t.getMessage().contains(substring)) { Assert.fail("Expected exception " + t.getClass().getName() + "' to contain the substring '" + substring + "' but instead got message: '" + t.getMessage() + "'"); } } public static void assertInited(Object o) { if (!Hibernate.isInitialized(o)) { Assert.fail("Expected initialized object " + o + ", but was uninitialized."); } } public static void assertNotInited(Object o) { if (Hibernate.isInitialized(o)) { Assert.fail("Expected uninitialized object " + o + ", but was initialized."); } } public static void assertPropertyInited(Object o, String propertyName) { if (!Hibernate.isPropertyInitialized(o, propertyName)) { Assert.fail("Expected initialized property named '" + propertyName + "' of object " + o + ", but was uninitialized."); } } public static void assertPropertyNotInited(Object o, String propertyName) { if (Hibernate.isPropertyInitialized(o, propertyName)) { Assert.fail("Expected uninitialized property named '" + propertyName + "' of object " + o + ", but was initialized."); } } }