[jboss-as7-dev] Integration Testsuite - HttpRequest.put problem with JAX-RS (RESTEasy)
Carlo de Wolf
cdewolf at redhat.com
Mon Sep 5 11:13:44 EDT 2011
If EJBWebServicesTestCase doesn't blow, you're good to go.
Carlo
On 09/05/2011 05:01 PM, Pavel Janousek wrote:
> After further investigation it seems enough in put(...) method of HttpRequest class to call conn.setRequestMethod("PUT") after sequence conn.setDoInput(true);conn.setDoOutput(true);
>
> Am I right? Does this modification break some already implemented calling of put() method as a result of changed implementation/behavior?
>
> --
> Pavel Janousek
> Senior JBoss QA Engineer
>
>
> ----- Original Message -----
>> From: "Carlo de Wolf"<cdewolf at redhat.com>
>> To: "Pavel Janousek"<Pavel.Janousek at redhat.com>
>> Cc: jboss-as7-dev at lists.jboss.org
>> Sent: Monday, September 5, 2011 4:41:16 PM
>> Subject: Re: [jboss-as7-dev] Integration Testsuite - HttpRequest.put problem with JAX-RS (RESTEasy)
>> I didn't actually implement using the PUT method. It's a get with
>> output.
>> But yes, that is badly constructed, so using PUT should be
>> implemented.
>>
>> Carlo
>>
>> On 09/05/2011 04:14 PM, Pavel Janousek wrote:
>>> Hello,
>>>
>>> I'm trying to develop simple integration JAX-RS TestCase (RESTEasy)
>>> based on widely used template class
>>> org.jboss.as.testsuite.integration.jaxrs.packaging.war.NoApplicationIntegrationTestCase.
>>>
>>> The main difference is that I'm trying to invoke PUT HTTP method
>>> (via put(...) method later added to
>>> org.jboss.as.testsuite.integration.common.HttpRequest object).
>>>
>>> Always I got error on test testPutBasic() - HTTP Status 405 (The
>>> specified HTTP method is not allowed for the requested resource
>>> ().), test testGetBasic() passed.
>>>
>>> Where I'm doing mistake?
>>>
>>> Source code is like this above...
>>>
>>> BasicPutTestCase:
>>> import java.util.concurrent.TimeUnit;
>>>
>>> import org.jboss.arquillian.container.test.api.Deployment;
>>> import org.jboss.arquillian.container.test.api.RunAsClient;
>>> import org.jboss.arquillian.junit.Arquillian;
>>> import org.jboss.as.testsuite.integration.common.HttpRequest;
>>> import
>>> org.jboss.as.testsuite.integration.jaxrs.packaging.war.WebXml;
>>> import org.jboss.shrinkwrap.api.Archive;
>>> import org.jboss.shrinkwrap.api.ShrinkWrap;
>>> import org.jboss.shrinkwrap.api.spec.WebArchive;
>>> import org.junit.Assert;
>>> import org.junit.Test;
>>> import org.junit.runner.RunWith;
>>>
>>> @RunWith(Arquillian.class)
>>> @RunAsClient
>>> public class BasicPutTestCase {
>>>
>>> @Deployment(testable = false)
>>> public static Archive<?> deploy() {
>>> WebArchive war = ShrinkWrap.create(WebArchive.class,
>>> "jaxrsnoap.war");
>>> war.addPackage(HttpRequest.class.getPackage());
>>> war.addClasses(BasicPutTestCase.class, TestResource.class);
>>> war.addAsWebInfResource(
>>> WebXml.get("<servlet-mapping>\n"
>>> +
>>> "<servlet-name>javax.ws.rs.core.Application</servlet-name>\n"
>>> + "<url-pattern>/myjaxrs/*</url-pattern>\n"
>>> + "</servlet-mapping>\n"
>>> + "\n"
>>> ), "web.xml");
>>> return war;
>>> }
>>>
>>> private static String performCallGet(String urlPattern) throws
>>> Exception {
>>> return HttpRequest.get("http://localhost:8080/jaxrsnoap/" +
>>> urlPattern,
>>> 5, TimeUnit.SECONDS);
>>> }
>>>
>>> private static String performCallPut(String urlPattern, String
>>> message) throws Exception {
>>> return HttpRequest.put("http://localhost:8080/jaxrsnoap/" +
>>> urlPattern, message,
>>> 5, TimeUnit.SECONDS);
>>> }
>>>
>>> @Test
>>> public void testGetBasic() throws Exception {
>>> String result = performCallGet("myjaxrs/basic");
>>> Assert.assertEquals("basic", result);
>>> }
>>>
>>> @Test
>>> public void testPutBasic() throws Exception {
>>> String result = performCallPut("myjaxrs/basic", "basic");
>>> Assert.assertEquals("", result);
>>> }
>>> }
>>>
>>> TestResource:
>>> import javax.ws.rs.Consumes;
>>> import javax.ws.rs.GET;
>>> import javax.ws.rs.PUT;
>>> import javax.ws.rs.Path;
>>> import javax.ws.rs.Produces;
>>>
>>> @Path("basic")
>>> public class TestResource {
>>>
>>> private static String str = "basic1";
>>>
>>> @GET
>>> @Produces("text/plain")
>>> public String get() {
>>> return str;
>>> }
>>>
>>> @PUT
>>> @Consumes("text/plain")
>>> public void put() {
>>> str = new String("basic2");
>>> }
>>> }
>>>
>>> Cheers,
>>>
>>> --
>>> Pavel Janousek
>>> Senior JBoss QA Engineer
>>>
>>>
>>> _______________________________________________
>>> jboss-as7-dev mailing list
>>> jboss-as7-dev at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
More information about the jboss-as7-dev
mailing list