package org.javaee7.validation.methods; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; import java.util.ArrayList; import java.util.List; import javax.inject.Inject; import javax.validation.ConstraintViolationException; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.shrinkwrap.api.Archive; import org.jboss.shrinkwrap.api.ShrinkWrap; import org.jboss.shrinkwrap.api.asset.EmptyAsset; import org.jboss.shrinkwrap.api.spec.JavaArchive; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import org.junit.runner.RunWith; /** * @author Jakub Marchwicki */ @RunWith(Arquillian.class) public class MethodParametersConstraintsTest { @Inject MyBean bean; @Rule public ExpectedException thrown = ExpectedException.none(); @Deployment public static Archive<?> deployment() { return ShrinkWrap.create(JavaArchive.class).addClasses(MyBean.class) .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml"); } @Test public void methodSizeTooLong() { thrown.expect(ConstraintViolationException.class); thrown.expectMessage("javax.validation.constraints.Size"); thrown.expectMessage("org.javaee7.validation.methods.MyBean.sayHello"); bean.sayHello("Duke"); } @Test public void methodSizeOk() { bean.sayHello("Duk"); } @Test public void showDateFromPast() { thrown.expect(ConstraintViolationException.class); thrown.expectMessage("javax.validation.constraints.Future"); thrown.expectMessage("org.javaee7.validation.methods.MyBean.showDate"); bean.showDate(false); } @Test public void showDateFromFuture() { bean.showDate(true); } @Test public void multipleParametersWithEmptyList() { thrown.expect(ConstraintViolationException.class); thrown.expectMessage("javax.validation.constraints.Size"); thrown.expectMessage("showList.arg0"); bean.showList(new ArrayList<String>(), "foo"); } @Test public void multipleParametersNullSecondParameter() { thrown.expect(ConstraintViolationException.class); thrown.expectMessage("javax.validation.constraints.NotNull"); thrown.expectMessage("showList.arg1"); List<String> list = new ArrayList<>(); list.add("bar"); bean.showList(list, null); } @Test public void multipleParametersWithCorrectValues() { List<String> list = new ArrayList<>(); list.add("bar"); list.add("woof"); String string = bean.showList(list, "foo"); assertThat(string, is(equalTo("foobar foowoof "))); } }