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