package org.jboss.weld.tests.decorators.weld1110; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.URL; import org.junit.Assert; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.arquillian.test.api.ArquillianResource; import org.jboss.shrinkwrap.api.ShrinkWrap; import org.jboss.shrinkwrap.api.asset.StringAsset; import org.jboss.shrinkwrap.api.spec.WebArchive; import org.jboss.shrinkwrap.impl.BeansXml; import org.jboss.weld.test.util.Utils; import org.jboss.weld.tests.category.Integration; import org.junit.Test; import org.junit.experimental.categories.Category; import org.junit.runner.RunWith; @RunWith(Arquillian.class) @Category(Integration.class) public class MessageSenderTest { @Deployment(testable = false) public static WebArchive create() { return ShrinkWrap.create(WebArchive.class, Utils.getDeploymentNameAsHash(MessageSenderTest.class, Utils.ARCHIVE_TYPE.WAR)) .addPackage(MessageSenderTest.class.getPackage()) .setWebXML(new StringAsset( "<web-app>" + "<display-name>jax</display-name>" + "<servlet-mapping>" + "<servlet-name>javax.ws.rs.core.Application</servlet-name>" + "<url-pattern>/rest/*</url-pattern>" + "</servlet-mapping>" + "</web-app>")) .addAsWebInfResource( new BeansXml().decorators(MessageDecorator.class), "beans.xml"); } @ArquillianResource private URL base; @Test public void testImpl() throws Exception { String response = getHttpGETResponse("rest/message/Hello"); Assert.assertEquals("Decorated Hello", response); } @Test public void testFacade() throws Exception { String response = getHttpGETResponse("rest/facade/Hello"); Assert.assertEquals("Decorated Hello", response); } private String getHttpGETResponse(String urlPath) throws IOException { URL url = new URL(base, urlPath); try (BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()))) { return in.readLine(); } } }