package de.randi2.testUtility.utility; import static org.junit.Assert.assertTrue; import java.util.Set; import javax.validation.ConstraintViolation; import javax.validation.Validation; import javax.validation.Validator; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import de.randi2.model.AbstractDomainObject; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"/META-INF/spring-test.xml"}) public abstract class AbstractDomainTest<TC extends AbstractDomainObject> { @Autowired protected TestStringUtil stringUtil; @Autowired protected DomainObjectFactory factory; protected Class<TC> testClass; protected AbstractDomainTest(Class<TC> _testClass) { this.testClass = _testClass; } protected void assertValid(TC validDO) { Validator validator = Validation.buildDefaultValidatorFactory().getValidator(); Set<ConstraintViolation<TC>> invalids = validator.validate(validDO); StringBuilder message = new StringBuilder(); for(ConstraintViolation<TC> v : invalids){ message.append(v.getPropertyPath()).append(" (").append(v.getInvalidValue()).append(")").append(": ").append(v.getMessage()).append("\n"); } assertTrue(message.toString(), invalids.size()==0); } protected void assertInvalid(TC invalidDO, String[] messages) { Validator validator = Validation.buildDefaultValidatorFactory().getValidator(); Set<ConstraintViolation<TC>> invalids = validator.validate(invalidDO); StringBuilder message = new StringBuilder(); for(String s : messages){ message.append(s + " | "); } assertTrue(message.toString(),invalids.size()>0); } protected void assertInvalid(TC invalidDO, String message) { this.assertInvalid(invalidDO, new String[]{message}); } protected void assertInvalid(TC invalidDO){ this.assertInvalid(invalidDO, new String[]{""}); } }