View Javadoc
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  }