package org.jboss.seam.test.integration; 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.Component; import org.jboss.seam.core.Events; import org.jboss.seam.mock.JUnitSeamTest; import org.jboss.shrinkwrap.api.Archive; import org.junit.Test; import org.junit.runner.RunWith; /** * * @author Pete Muir * */ @RunWith(Arquillian.class) public class EventTest extends JUnitSeamTest { @Deployment(name="IdentifierTest") @OverProtocol("Servlet 3.0") public static Archive<?> createDeployment() { return Deployments.defaultSeamDeployment() .addClasses(BeanA.class, BeanB.class); } @Test public void testEventChain() throws Exception { new FacesRequest("/index.xhtml") { @Override protected void invokeApplication() throws Exception { BeanA beanA = (BeanA) Component.getInstance("beanA"); BeanB beanB = (BeanB) Component.getInstance("beanB"); assert "Foo".equals(beanA.getMyValue()); assert beanB.getMyValue() == null; Events.instance().raiseEvent("BeanA.refreshMyValue"); beanA = (BeanA) Component.getInstance("beanA"); assert "Bar".equals(beanA.getMyValue()); } @Override protected void renderResponse() throws Exception { BeanB beanB = (BeanB) Component.getInstance("beanB"); assert "Bar".equals(beanB.getMyValue()); } }.run(); } }