• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package software.amazon.eventstream;
2 
3 import org.junit.jupiter.api.Test;
4 
5 import java.time.Instant;
6 import java.util.LinkedHashMap;
7 import java.util.Map;
8 import java.util.UUID;
9 
10 import static java.nio.charset.StandardCharsets.UTF_8;
11 import static org.junit.jupiter.api.Assertions.assertEquals;
12 
13 public class ToStringTest {
14     @Test
headerTypes()15     public void headerTypes() throws Exception {
16         Map<String, HeaderValue> headers = new LinkedHashMap<>();
17         headers.put(":content-type", HeaderValue.fromString("application/json"));
18         headers.put("boolean-true", HeaderValue.fromBoolean(true));
19         headers.put("boolean-false", HeaderValue.fromBoolean(false));
20         headers.put("byte-value", HeaderValue.fromByte((byte) 4));
21         headers.put("short-value", HeaderValue.fromShort((short) 16384));
22         headers.put("integer-value", HeaderValue.fromInteger(-1048576));
23         headers.put("long-value", HeaderValue.fromLong(850270403920392L));
24         headers.put("string-value", HeaderValue.fromString("asdf"));
25         headers.put("byte-array-value", HeaderValue.fromByteArray(new byte[]{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }));
26         headers.put("instant-value", HeaderValue.fromTimestamp(Instant.ofEpochMilli(1511312536153L)));
27         headers.put("uuid-value", HeaderValue.fromUuid(new UUID(89012350712350912L, 9182739072970134201L)));
28 
29         Message message = new Message(
30             headers,
31             "{\"foo\": \"bar\"}".getBytes(UTF_8)
32         );
33 
34         String expected =
35             ":content-type: \"application/json\"\n" +
36             "boolean-true: true\n" +
37             "boolean-false: false\n" +
38             "byte-value: 4\n" +
39             "short-value: 16384\n" +
40             "integer-value: -1048576\n" +
41             "long-value: 850270403920392\n" +
42             "string-value: \"asdf\"\n" +
43             "byte-array-value: AQIDBAUGBwgJCgsM\n" +
44             "instant-value: 2017-11-22T01:02:16.153Z\n" +
45             "uuid-value: 013c3c42-e8d5-08c0-7f6f-a488dd7c12b9\n" +
46             "\n" +
47             "{\"foo\": \"bar\"}\n";
48         System.out.println(message);
49         assertEquals(expected, message.toString());
50     }
51 
52     @Test
controlMessages()53     public void controlMessages() throws Exception {
54         Map<String, HeaderValue> headers = new LinkedHashMap<>();
55         headers.put(":content-type", HeaderValue.fromString("application/json"));
56 
57         Message message = new Message(headers, "{\"foo\": \"bar\"}".getBytes(UTF_8));
58 
59         String expected =
60             ":content-type: \"application/json\"\n" +
61             "\n" +
62             "{\"foo\": \"bar\"}\n";
63         assertEquals(expected, message.toString());
64     }
65 
66     @Test
binaryPayload()67     public void binaryPayload() throws Exception {
68         Map<String, HeaderValue> headers = new LinkedHashMap<>();
69         headers.put(":content-type", HeaderValue.fromString("application/octet-stream"));
70 
71         Message message = new Message(headers, new byte[]{ 23, 12, (byte) 129, 44, 89, 90 });
72 
73         String expected =
74             ":content-type: \"application/octet-stream\"\n" +
75             "\n" +
76             "FwyBLFla\n";
77         assertEquals(expected, message.toString());
78     }
79 }
80