[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