package org.jboss.seam.test.integration.bpm; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.container.test.api.OverProtocol; import org.jboss.arquillian.junit.Arquillian; import org.jboss.seam.mock.JUnitSeamTest; import org.jboss.seam.test.integration.Deployments; import org.jboss.shrinkwrap.api.Archive; import org.jbpm.jpdl.el.ELException; import org.junit.Test; import org.junit.runner.RunWith; /** * @author Pete Muir * */ //@Ignore @RunWith(Arquillian.class) public class SeamExpressionEvaluatorTest extends JUnitSeamTest { @Deployment(name="SeamExpressionEvaluatorTest") @OverProtocol("Servlet 3.0") public static Archive<?> createDeployment() { return Deployments.jbpmSeamDeployment() .addClasses(SeamExpressionEvaluatorTestController.class); } // Test for JBSEAM-1937 @Test public void testValueExpression() throws Exception { new FacesRequest() { @Override protected void invokeApplication() throws Exception { invokeAction("#{seamExpressionEvaluatorTestController.createProcess2}"); } }.run(); } // Test for JBSEAM-3250 @Test public void testUnqualifiedValueExpression() throws Exception { new FacesRequest() { @Override protected void invokeApplication() throws Exception { invokeAction("#{seamExpressionEvaluatorTestController.createProcess4}"); } }.run(); } // Test for JBSEAM-2152 @Test public void testMissingMethod() throws Exception { new FacesRequest() { @Override protected void invokeApplication() throws Exception { try { invokeAction("#{seamExpressionEvaluatorTestController.createProcess3}"); } catch (Exception e) { if (!(isRootCause(e, ELException.class) || isRootCause(e, javax.el.ELException.class))) { e.printStackTrace(); assert false; } } } }.run(); } private static boolean isRootCause(Throwable t, Class clazz) { for (Throwable cause = t.getCause(); cause != null && cause != cause.getCause(); cause = cause.getCause()) { if (clazz.isAssignableFrom(cause.getClass())) { return true; } } return false; } }