package org.testfun.jee.examples;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.testfun.jee.EjbWithMockitoRunner;
import org.testfun.jee.ExpectedConstraintViolation;
import org.testfun.jee.real.SomeDao;
import org.testfun.jee.real.SomeEntity;
import javax.ejb.EJB;
import static org.junit.Assert.assertEquals;
@RunWith(EjbWithMockitoRunner.class)
public class JpaValidationTest {
@Rule
public ExpectedConstraintViolation violationThrown = ExpectedConstraintViolation.none();
@EJB
private SomeDao someDao;
@Test
public void validName() {
someDao.save(new SomeEntity(0, "Valid", null));
assertEquals("Valid", someDao.getAll().get(0).getName());
}
@Test
public void nameTooShort() {
violationThrown.expectViolation("The name must be at least 4 characters");
someDao.save(new SomeEntity(0, "srt", null));
}
@Test
public void nameTooLong() {
violationThrown.expectViolation("The name must be less than 20 characters");
someDao.save(new SomeEntity(0, "This name should be longer than 20 characters", null));
}
}