1 package ch.qos.logback.access.spi;
2
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertNotNull;
5
6 import java.io.ByteArrayInputStream;
7 import java.io.ByteArrayOutputStream;
8 import java.io.IOException;
9 import java.io.ObjectInputStream;
10 import java.io.ObjectOutputStream;
11
12 import org.junit.Test;
13
14 import ch.qos.logback.access.dummy.DummyAccessEventBuilder;
15 import ch.qos.logback.access.dummy.DummyRequest;
16 import ch.qos.logback.access.dummy.DummyResponse;
17
18 public class AccessEventSerializationTest {
19
20 private Object buildSerializedAccessEvent() throws IOException,
21 ClassNotFoundException {
22 ByteArrayOutputStream baos = new ByteArrayOutputStream();
23 ObjectOutputStream oos = new ObjectOutputStream(baos);
24 AccessEvent ae = DummyAccessEventBuilder.buildNewAccessEvent();
25
26 ae.prepareForDeferredProcessing();
27 oos.writeObject(ae);
28 oos.flush();
29
30 ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
31 ObjectInputStream ois = new ObjectInputStream(bais);
32
33 return ois.readObject();
34 }
35
36 @Test
37 public void testSerialization() throws IOException, ClassNotFoundException {
38 Object o = buildSerializedAccessEvent();
39 assertNotNull(o);
40 AccessEvent aeBack = (AccessEvent) o;
41
42
43 assertEquals(DummyResponse.DUMMY_DEFAULT_HDEADER_MAP, aeBack
44 .getResponseHeaderMap());
45 assertEquals(DummyResponse.DUMMY_DEFAULT_HDEADER_MAP.get("x"), aeBack
46 .getResponseHeader("x"));
47 assertEquals(DummyResponse.DUMMY_DEFAULT_HDEADER_MAP.get("headerName1"),
48 aeBack.getResponseHeader("headerName1"));
49 assertEquals(DummyResponse.DUMMY_DEFAULT_HDEADER_MAP.size(), aeBack
50 .getResponseHeaderNameList().size());
51 assertEquals(DummyResponse.DUMMY_DEFAULT_CONTENT_COUNT, aeBack
52 .getContentLength());
53 assertEquals(DummyResponse.DUMMY_DEFAULT_STATUS, aeBack.getStatusCode());
54
55 assertEquals(DummyRequest.DUMMY_CONTENT_STRING, aeBack
56 .getRequestContent());
57
58 assertEquals(DummyRequest.DUMMY_RESPONSE_CONTENT_STRING, aeBack
59 .getResponseContent());
60
61 }
62
63 }