1 package com.github.davidmoten.aws.lw.client;
2
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertFalse;
5 import static org.junit.Assert.assertTrue;
6
7 import java.io.ByteArrayInputStream;
8 import java.io.IOException;
9 import java.util.Collections;
10 import java.util.HashMap;
11 import java.util.List;
12 import java.util.Map;
13
14 import org.junit.Test;
15
16 public class RequestTest {
17
18 @Test
19 public void testTrim() {
20 assertEquals("abc", Request.trimAndRemoveLeadingAndTrailingSlashes("abc"));
21 assertEquals("abc", Request.trimAndRemoveLeadingAndTrailingSlashes("/abc"));
22 assertEquals("abc", Request.trimAndRemoveLeadingAndTrailingSlashes(" /abc"));
23 assertEquals("abc", Request.trimAndRemoveLeadingAndTrailingSlashes("abc/"));
24 assertEquals("abc", Request.trimAndRemoveLeadingAndTrailingSlashes("abc/ "));
25 assertEquals("abc", Request.trimAndRemoveLeadingAndTrailingSlashes("/abc/"));
26 }
27
28 @Test
29 public void testHasBodyWhenContentLengthPresent() throws IOException {
30 Map<String, List<String>> headers = new HashMap<>();
31 headers.put("content-length", Collections.singletonList("3"));
32 try (ResponseInputStream r = new ResponseInputStream(() ->{}, 200, headers,
33 new ByteArrayInputStream(new byte[] { 1, 2, 3 }))) {
34 assertTrue(Request.hasBody(r));
35 }
36 }
37
38 @Test
39 public void testHasBodyWhenChunked() throws IOException {
40 Map<String, List<String>> headers = new HashMap<>();
41 headers.put("transfer-encoding", Collections.singletonList("chunkeD"));
42 try (ResponseInputStream r = new ResponseInputStream(() ->{}, 200, headers,
43 new ByteArrayInputStream(new byte[] { 1, 2, 3 }))) {
44 assertTrue(Request.hasBody(r));
45 }
46 }
47
48 @Test
49 public void testHasBodyButNoHeader() throws IOException {
50 Map<String, List<String>> headers = new HashMap<>();
51 try (ResponseInputStream r = new ResponseInputStream(() ->{}, 200, headers,
52 new ByteArrayInputStream(new byte[] { 1, 2, 3 }))) {
53 assertFalse(Request.hasBody(r));
54 }
55 }
56
57 @Test
58 public void testTrimAndEnsureHasTrailingSlash() {
59 assertEquals("/",Request.trimAndEnsureHasTrailingSlash(""));
60 assertEquals("/",Request.trimAndEnsureHasTrailingSlash("/"));
61 assertEquals("abc/",Request.trimAndEnsureHasTrailingSlash("abc"));
62 assertEquals("abc/",Request.trimAndEnsureHasTrailingSlash("abc/"));
63 }
64
65 }