You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by cm...@apache.org on 2013/10/01 19:34:56 UTC

git commit: CAMEL-6240: Http4 component does not support PATCH

Updated Branches:
  refs/heads/master 31ebf4d5f -> e0ad0c08b


CAMEL-6240: Http4 component does not support PATCH


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/e0ad0c08
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/e0ad0c08
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/e0ad0c08

Branch: refs/heads/master
Commit: e0ad0c08bf41bd728413c2ecd78b8af861bab678
Parents: 31ebf4d
Author: cmueller <cm...@apache.org>
Authored: Tue Oct 1 19:34:49 2013 +0200
Committer: cmueller <cm...@apache.org>
Committed: Tue Oct 1 19:34:49 2013 +0200

----------------------------------------------------------------------
 .../camel/component/http4/HttpMethods.java      |  2 +
 .../camel/component/http4/BaseHttpTest.java     |  2 +-
 .../camel/component/http4/HttpMethodsTest.java  | 44 ++++++++++++++++++++
 3 files changed, 47 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/e0ad0c08/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpMethods.java
----------------------------------------------------------------------
diff --git a/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpMethods.java b/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpMethods.java
index be5a498..780ca50 100644
--- a/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpMethods.java
+++ b/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpMethods.java
@@ -24,6 +24,7 @@ import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
 import org.apache.http.client.methods.HttpGet;
 import org.apache.http.client.methods.HttpHead;
 import org.apache.http.client.methods.HttpOptions;
+import org.apache.http.client.methods.HttpPatch;
 import org.apache.http.client.methods.HttpPost;
 import org.apache.http.client.methods.HttpPut;
 import org.apache.http.client.methods.HttpRequestBase;
@@ -32,6 +33,7 @@ import org.apache.http.client.methods.HttpTrace;
 public enum HttpMethods implements Expression {
 
     GET(HttpGet.class),
+    PATCH(HttpPatch.class),
     POST(HttpPost.class),
     PUT(HttpPut.class),
     DELETE(HttpDelete.class),

http://git-wip-us.apache.org/repos/asf/camel/blob/e0ad0c08/components/camel-http4/src/test/java/org/apache/camel/component/http4/BaseHttpTest.java
----------------------------------------------------------------------
diff --git a/components/camel-http4/src/test/java/org/apache/camel/component/http4/BaseHttpTest.java b/components/camel-http4/src/test/java/org/apache/camel/component/http4/BaseHttpTest.java
index 9bb3bdd..1fd8d1c 100644
--- a/components/camel-http4/src/test/java/org/apache/camel/component/http4/BaseHttpTest.java
+++ b/components/camel-http4/src/test/java/org/apache/camel/component/http4/BaseHttpTest.java
@@ -31,8 +31,8 @@ public abstract class BaseHttpTest extends HttpServerTestSupport {
     protected void assertExchange(Exchange exchange) {
         assertNotNull(exchange);
 
+        assertTrue(exchange.hasOut());
         Message out = exchange.getOut();
-        assertNotNull(out);
         assertHeaders(out.getHeaders());
         assertBody(out.getBody(String.class));
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/e0ad0c08/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpMethodsTest.java
----------------------------------------------------------------------
diff --git a/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpMethodsTest.java b/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpMethodsTest.java
index 13e2f25..6870a56 100644
--- a/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpMethodsTest.java
+++ b/components/camel-http4/src/test/java/org/apache/camel/component/http4/HttpMethodsTest.java
@@ -16,10 +16,13 @@
  */
 package org.apache.camel.component.http4;
 
+import java.util.Map;
+
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.Processor;
 import org.apache.camel.component.http4.handler.BasicValidationHandler;
+import org.apache.http.HttpStatus;
 import org.junit.Test;
 
 /**
@@ -41,6 +44,47 @@ public class HttpMethodsTest extends BaseHttpTest {
     }
 
     @Test
+    public void httpPatch() throws Exception {
+        localServer.register("/", new BasicValidationHandler("PATCH", null, null, getExpectedContent()));
+
+        Exchange exchange = template.request("http4://" + getHostName() + ":" + getPort() + "/?throwExceptionOnFailure=false", new Processor() {
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setHeader(Exchange.HTTP_METHOD, "PATCH");
+            }
+        });
+
+        assertNotNull(exchange);
+        assertTrue(exchange.hasOut());
+
+        Message out = exchange.getOut();
+        Map<String, Object> headers = out.getHeaders();
+        assertEquals(HttpStatus.SC_NOT_IMPLEMENTED, headers.get(Exchange.HTTP_RESPONSE_CODE));
+        assertEquals("26", headers.get("Content-Length"));
+        assertNotNull("Should have Content-Type header", headers.get("Content-Type"));
+        assertEquals("PATCH method not supported", out.getBody(String.class));
+    }
+
+    @Test
+    public void httpPatchWithBody() throws Exception {
+        localServer.register("/", new BasicValidationHandler("PATCH", null, "rocks camel?", getExpectedContent()));
+
+        Exchange exchange = template.request("http4://" + getHostName() + ":" + getPort() + "/?throwExceptionOnFailure=false", new Processor() {
+            public void process(Exchange exchange) throws Exception {
+                exchange.getIn().setBody("rocks camel?");
+            }
+        });
+
+        assertNotNull(exchange);
+        assertTrue(exchange.hasOut());
+
+        Message out = exchange.getOut();
+        Map<String, Object> headers = out.getHeaders();
+        assertEquals(HttpStatus.SC_METHOD_FAILURE, headers.get(Exchange.HTTP_RESPONSE_CODE));
+        assertEquals("0", headers.get("Content-Length"));
+        assertEquals("", out.getBody(String.class));
+    }
+
+    @Test
     public void httpPost() throws Exception {
         localServer.register("/", new BasicValidationHandler("POST", null, null, getExpectedContent()));