Author: ningjiang Date: Wed Feb 10 09:38:53 2010 New Revision: 908415 URL: http://svn.apache.org/viewvc?rev=908415&view=rev Log: CAMEL-2453 added the unit test
Modified: camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpConverterTest.java camel/trunk/components/camel-servlet/src/test/java/org/apache/camel/component/servlet/HttpClientRouteTest.java Modified: camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpConverterTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpConverterTest.java?rev=908415&r1=908414&r2=908415&view=diff ============================================================================== --- camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpConverterTest.java (original) +++ camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/HttpConverterTest.java Wed Feb 10 09:38:53 2010 @@ -19,8 +19,10 @@ import java.io.InputStream; import javax.servlet.ServletInputStream; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import org.apache.camel.Exchange; +import org.apache.camel.Message; import org.apache.camel.Processor; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.http.HttpConverter; @@ -37,6 +39,32 @@ public boolean isUseRouteBuilder() { return false; } + + @Test + public void testToServletRequestAndResponse() throws Exception { + context.addRoutes(new RouteBuilder() { + @Override + public void configure() throws Exception { + from("jetty://http://localhost:9080/test") + // add this node to make sure the convert can work within DefaultMessageImpl + .convertBodyTo(String.class) + .process(new Processor() { + public void process(Exchange exchange) throws Exception { + HttpServletRequest request = exchange.getIn(HttpServletRequest.class); + assertNotNull("We should get request object here", request); + HttpServletResponse response = exchange.getIn(HttpServletResponse.class); + assertNotNull("We should get response object here", response); + String s = exchange.getIn().getBody(String.class); + assertEquals("Hello World", s); + } + }).transform(constant("Bye World")); + } + }); + context.start(); + + String out = template.requestBody("http://localhost:9080/test", "Hello World", String.class); + assertEquals("Bye World", out); + } @Test public void testToServletInputStream() throws Exception { Modified: camel/trunk/components/camel-servlet/src/test/java/org/apache/camel/component/servlet/HttpClientRouteTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-servlet/src/test/java/org/apache/camel/component/servlet/HttpClientRouteTest.java?rev=908415&r1=908414&r2=908415&view=diff ============================================================================== --- camel/trunk/components/camel-servlet/src/test/java/org/apache/camel/component/servlet/HttpClientRouteTest.java (original) +++ camel/trunk/components/camel-servlet/src/test/java/org/apache/camel/component/servlet/HttpClientRouteTest.java Wed Feb 10 09:38:53 2010 @@ -19,6 +19,9 @@ import java.io.ByteArrayInputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + import com.meterware.httpunit.PostMethodWebRequest; import com.meterware.httpunit.WebRequest; import com.meterware.httpunit.WebResponse; @@ -55,6 +58,16 @@ client.setExceptionsThrownOnErrorStatus(false); } + @Test + public void testHttpConverter() throws Exception { + WebRequest req = new PostMethodWebRequest(CONTEXT_URL + "/services/testConverter", new ByteArrayInputStream(POST_DATA.getBytes()), "text/xml; charset=UTF-8"); + ServletUnitClient client = newClient(); + client.setExceptionsThrownOnErrorStatus(false); + WebResponse response = client.getResponse(req); + assertEquals("The response message is wrong ", "OK", response.getResponseMessage()); + assertEquals("The response body is wrong", "Bye World", response.getText()); + } + public static class MyServletRoute extends RouteBuilder { @Override @@ -62,7 +75,7 @@ errorHandler(noErrorHandler()); // START SNIPPET: route from("servlet:///hello?matchOnUriPrefix=true").process(new Processor() { - public void process(Exchange exchange) throws Exception { + public void process(Exchange exchange) throws Exception { String contentType = exchange.getIn().getHeader(Exchange.CONTENT_TYPE, String.class); String path = exchange.getIn().getHeader(Exchange.HTTP_PATH, String.class); assertEquals("Get a wrong content type", CONTENT_TYPE, contentType); @@ -74,7 +87,21 @@ } }); // END SNIPPET: route - } + + from("servlet:///testConverter?matchOnUriPrefix=true") + .convertBodyTo(String.class) + .process(new Processor() { + public void process(Exchange exchange) throws Exception { + HttpServletRequest request = exchange.getIn(HttpServletRequest.class); + assertNotNull("We should get request object here", request); + HttpServletResponse response = exchange.getIn(HttpServletResponse.class); + assertNotNull("We should get response object here", response); + String s = exchange.getIn().getBody(String.class); + assertEquals("<request> hello world </request>", s); + } + }).transform(constant("Bye World")); + } + }