1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 package org.apache.hc.core5.http.io.entity;
29
30 import java.io.ByteArrayInputStream;
31 import java.io.ByteArrayOutputStream;
32 import java.io.ObjectInputStream;
33 import java.io.ObjectOutputStream;
34 import java.io.Serializable;
35
36 import org.junit.jupiter.api.Assertions;
37 import org.junit.jupiter.api.Test;
38
39 public class TestSerializableEntity {
40
41 public static class SerializableObject implements Serializable {
42
43 private static final long serialVersionUID = 1833335861188359573L;
44
45 public final int intValue = 4;
46
47 public final String stringValue = "Hello";
48
49 public SerializableObject() {}
50 }
51
52 @Test
53 public void testBasics() throws Exception {
54 final ByteArrayOutputStream baos = new ByteArrayOutputStream();
55 final ObjectOutputStream out = new ObjectOutputStream(baos);
56
57 final Serializable serializableObj = new SerializableObject();
58 out.writeObject(serializableObj);
59
60 try (final SerializableEntity httpentity = new SerializableEntity(serializableObj, null)) {
61
62 Assertions.assertEquals(-1, httpentity.getContentLength());
63 Assertions.assertNotNull(httpentity.getContent());
64 Assertions.assertTrue(httpentity.isRepeatable());
65 Assertions.assertFalse(httpentity.isStreaming());
66 }
67 }
68
69 @Test
70 public void testWriteTo() throws Exception {
71 final Serializable serializableObj = new SerializableObject();
72 try (final SerializableEntity httpentity = new SerializableEntity(serializableObj, null)) {
73
74 final ByteArrayOutputStream out = new ByteArrayOutputStream();
75 httpentity.writeTo(out);
76 final byte[] bytes = out.toByteArray();
77 Assertions.assertNotNull(bytes);
78 final ObjectInputStream oin = new ObjectInputStream(new ByteArrayInputStream(bytes));
79 final SerializableObject serIn = (SerializableObject) oin.readObject();
80 Assertions.assertEquals(4, serIn.intValue);
81 Assertions.assertEquals("Hello", serIn.stringValue);
82
83 Assertions.assertThrows(NullPointerException.class, () -> httpentity.writeTo(null));
84 }
85 }
86
87 }