package org.jboss.seam.compat.jaxrs.provider;
import java.net.URL;
import org.jboss.arquillian.api.ArquillianResource;
import org.jboss.arquillian.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.seam.compat.jaxrs.AbstractRestClientTest;
import org.jboss.seam.compat.jaxrs.MyApplication;
import org.jboss.seam.compat.jaxrs.Resource;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.StringAsset;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.jboss.shrinkwrap.descriptor.api.Descriptors;
import org.jboss.shrinkwrap.descriptor.api.spec.servlet.web.WebAppDescriptor;
import org.junit.Test;
import org.junit.runner.RunWith;
/**
* Verifies that an Application subclass can be injected into a JAX-RS provider.
*
* @author <a href="http://community.jboss.org/people/jharting">Jozef Hartinger</a>
* @see https://issues.jboss.org/browse/RESTEASY-506
*/
@RunWith(Arquillian.class)
public class ApplicationInjectedIntoProviderTest extends AbstractRestClientTest {
@ArquillianResource
URL deploymentUrl;
@Deployment(testable = false)
public static WebArchive getDeployment() {
WebAppDescriptor webXml = Descriptors.create(WebAppDescriptor.class);
return ShrinkWrap.create(WebArchive.class, "test.war")
.addClasses(MyApplication.class, Resource.class, ExceptionMapperWithApplicationInjection.class)
.setWebXML(new StringAsset(webXml.exportAsString()));
}
@Test
public void testProviderInjected() throws Exception {
test(deploymentUrl.toString() + "api/test/exception", 200, "Application:true");
}
}