package org.jboss.seam.example.restbay.test;
import static org.junit.Assert.assertEquals;
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.EnhancedMockHttpServletRequest;
import org.jboss.seam.mock.EnhancedMockHttpServletResponse;
import org.jboss.seam.mock.JUnitSeamTest;
import org.jboss.seam.mock.ResourceRequestEnvironment;
import org.jboss.seam.mock.ResourceRequestEnvironment.Method;
import org.jboss.seam.mock.ResourceRequestEnvironment.ResourceRequest;
import org.jboss.shrinkwrap.api.Archive;
import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Test;
import org.junit.runner.RunWith;
/**
*
* @author Jozef Hartinger
*/
@RunWith(Arquillian.class)
public class ContextDataTest extends JUnitSeamTest
{
@Deployment(name="ContextDataTest")
@OverProtocol("Servlet 3.0")
public static Archive<?> createDeployment()
{
EnterpriseArchive er = Deployments.restbayDeployment();
WebArchive web = er.getAsType(WebArchive.class, "restbay-web.war");
web.addClasses(ContextDataTest.class);
return er;
}
public String[] getContextDataTypePaths()
{
return new String[]{ "/providers", "/registry", "/dispatcher" };
}
@Test
public void testContextData() throws Exception
{
for (String pathSegment : getContextDataTypePaths())
{
String path = "/restv1/contextData" + pathSegment;
new ResourceRequest(new ResourceRequestEnvironment(this), Method.GET, path)
{
@Override
protected void prepareRequest(EnhancedMockHttpServletRequest request)
{
super.prepareRequest(request);
request.addHeader("Accept", "text/plain");
}
@Override
protected void onResponse(EnhancedMockHttpServletResponse response)
{
assertEquals("Unexpected response code.", 200, response.getStatus());
assertEquals("Unexpected response.", "true", response.getContentAsString());
}
}.run();
}
}
}