You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2021/12/04 12:43:25 UTC
[httpcomponents-client] branch master updated: Complete test for HTTP Methods.
This is an automated email from the ASF dual-hosted git repository.
olegk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/httpcomponents-client.git
The following commit(s) were added to refs/heads/master by this push:
new f8f5bbd Complete test for HTTP Methods.
f8f5bbd is described below
commit f8f5bbda872e425dee4df07234f2d4e3e52f3b66
Author: Arturo Bernal <ar...@gmail.com>
AuthorDate: Sat Dec 4 00:23:31 2021 +0100
Complete test for HTTP Methods.
---
.../http/classic/methods/TestHttpRequestBase.java | 143 ++++++++++++++++++++-
1 file changed, 139 insertions(+), 4 deletions(-)
diff --git a/httpclient5/src/test/java/org/apache/hc/client5/http/classic/methods/TestHttpRequestBase.java b/httpclient5/src/test/java/org/apache/hc/client5/http/classic/methods/TestHttpRequestBase.java
index 54aa4c8..d6ba7b8 100644
--- a/httpclient5/src/test/java/org/apache/hc/client5/http/classic/methods/TestHttpRequestBase.java
+++ b/httpclient5/src/test/java/org/apache/hc/client5/http/classic/methods/TestHttpRequestBase.java
@@ -27,24 +27,159 @@
package org.apache.hc.client5.http.classic.methods;
+import static org.junit.jupiter.api.Assertions.assertAll;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
import java.net.URI;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.apache.hc.client5.http.entity.EntityBuilder;
+import org.apache.hc.core5.http.HttpEntity;
+import org.apache.hc.core5.http.HttpResponse;
+import org.apache.hc.core5.http.HttpStatus;
+import org.apache.hc.core5.http.message.BasicHttpResponse;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
public class TestHttpRequestBase {
+ private static final String HOT_URL = "http://host/path";
+
@Test
- public void testBasicProperties() throws Exception {
- final HttpGet httpget = new HttpGet("http://host/path");
+ public void testBasicGetMethodProperties() throws Exception {
+ final HttpGet httpget = new HttpGet(HOT_URL);
Assertions.assertEquals("GET", httpget.getMethod());
- Assertions.assertEquals(new URI("http://host/path"), httpget.getUri());
+ Assertions.assertEquals(new URI(HOT_URL), httpget.getUri());
+ }
+
+ @Test
+ public void testBasicHttpPostMethodProperties() throws Exception {
+ final HttpPost HttpPost = new HttpPost(HOT_URL);
+ Assertions.assertEquals("POST", HttpPost.getMethod());
+ Assertions.assertEquals(new URI(HOT_URL), HttpPost.getUri());
+ }
+
+ @Test
+ public void testBasicHttpHeadMethodProperties() throws Exception {
+ final HttpHead httpHead = new HttpHead(HOT_URL);
+ Assertions.assertEquals("HEAD", httpHead.getMethod());
+ Assertions.assertEquals(new URI(HOT_URL), httpHead.getUri());
+ }
+
+ @Test
+ public void testBasicHttpOptionMethodProperties() throws Exception {
+ final HttpOptions httpOption = new HttpOptions(HOT_URL);
+ Assertions.assertEquals("OPTIONS", httpOption.getMethod());
+ Assertions.assertEquals(new URI(HOT_URL), httpOption.getUri());
+ }
+
+ @Test
+ public void testBasicHttpPatchMethodProperties() throws Exception {
+ final HttpPatch httpPatch = new HttpPatch(HOT_URL);
+ Assertions.assertEquals("PATCH", httpPatch.getMethod());
+ Assertions.assertEquals(new URI(HOT_URL), httpPatch.getUri());
}
@Test
- public void testEmptyURI() throws Exception {
+ public void testBasicHttpPutMethodProperties() throws Exception {
+ final HttpPut httpPut = new HttpPut(HOT_URL);
+ Assertions.assertEquals("PUT", httpPut.getMethod());
+ Assertions.assertEquals(new URI(HOT_URL), httpPut.getUri());
+ }
+
+ @Test
+ public void testBasicHttpTraceMethodProperties() throws Exception {
+ final HttpTrace httpTrace = new HttpTrace(HOT_URL);
+ Assertions.assertEquals("TRACE", httpTrace.getMethod());
+ Assertions.assertEquals(new URI(HOT_URL), httpTrace.getUri());
+ }
+
+
+ @Test
+ public void testBasicHttpDeleteMethodProperties() throws Exception {
+ final HttpDelete httpDelete = new HttpDelete(HOT_URL);
+ Assertions.assertEquals("DELETE", httpDelete.getMethod());
+ Assertions.assertEquals(new URI(HOT_URL), httpDelete.getUri());
+ }
+
+
+ @Test
+ public void testGetMethodEmptyURI() throws Exception {
final HttpGet httpget = new HttpGet("");
Assertions.assertEquals(new URI("/"), httpget.getUri());
}
+ @Test
+ public void testPostMethodEmptyURI() throws Exception {
+ final HttpPost HttpPost = new HttpPost("");
+ Assertions.assertEquals(new URI("/"), HttpPost.getUri());
+ }
+
+ @Test
+ public void testHeadMethodEmptyURI() throws Exception {
+ final HttpHead httpHead = new HttpHead("");
+ Assertions.assertEquals(new URI("/"), httpHead.getUri());
+ }
+
+ @Test
+ public void testOptionMethodEmptyURI() throws Exception {
+ final HttpOptions httpOption = new HttpOptions("");
+ Assertions.assertEquals(new URI("/"), httpOption.getUri());
+ }
+
+ @Test
+ public void testPatchMethodEmptyURI() throws Exception {
+ final HttpPatch httpPatch = new HttpPatch("");
+ Assertions.assertEquals(new URI("/"), httpPatch.getUri());
+ }
+
+ @Test
+ public void testPutMethodEmptyURI() throws Exception {
+ final HttpPut httpPut = new HttpPut("");
+ Assertions.assertEquals(new URI("/"), httpPut.getUri());
+ }
+
+ @Test
+ public void testTraceMethodEmptyURI() throws Exception {
+ final HttpTrace httpTrace = new HttpTrace("");
+ Assertions.assertEquals(new URI("/"), httpTrace.getUri());
+ }
+
+
+ @Test
+ public void testDeleteMethodEmptyURI() throws Exception {
+ final HttpDelete httpDelete = new HttpDelete("");
+ Assertions.assertEquals(new URI("/"), httpDelete.getUri());
+ }
+
+
+ @Test
+ public void testTraceMethodSetEntity() {
+ final HttpTrace httpTrace = new HttpTrace(HOT_URL);
+ final HttpEntity entity = EntityBuilder.create().setText("stuff").build();
+ assertThrows(IllegalStateException.class, () -> httpTrace.setEntity(entity));
+ }
+
+ @Test
+ public void testOptionMethodGetAllowedMethods() {
+ final HttpResponse response = new BasicHttpResponse(HttpStatus.SC_OK, "OK");
+ response.addHeader("Allow", "GET, HEAD");
+ response.addHeader("Allow", "DELETE");
+ response.addHeader("Content-Length", "128");
+ final HttpOptions httpOptions = new HttpOptions("");
+ final Set<String> methods = httpOptions.getAllowedMethods(response);
+ assertAll("Must all pass",
+ () -> assertFalse(methods.isEmpty()),
+ () -> assertEquals(methods.size(), 3),
+ () -> assertTrue(methods.containsAll(Stream.of("HEAD", "DELETE", "GET")
+ .collect(Collectors.toCollection(HashSet::new))))
+ );
+ }
+
}