1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.mina.codec.delimited.serialization;
21
22 import static org.junit.Assert.assertEquals;
23
24 import java.nio.ByteBuffer;
25 import java.util.List;
26
27 import org.apache.mina.codec.IoBuffer;
28 import org.apache.mina.codec.delimited.ByteBufferEncoder;
29 import org.apache.mina.codec.delimited.IoBufferDecoder;
30 import org.junit.Test;
31
32
33
34
35
36
37 public abstract class GenericSerializerTest<T> {
38
39 public abstract IoBufferDecoder<T> getDecoder() throws Exception;
40
41 public abstract ByteBufferEncoder<T> getEncoder() throws Exception;
42
43 public abstract List<T> getObjects();
44
45 @Test
46 public void testSerialization() throws Exception {
47 IoBufferDecoder<T> decoder = getDecoder();
48 ByteBufferEncoder<T> encoder = getEncoder();
49 for (T object : getObjects()) {
50 assertEquals(object, decoder.decode(IoBuffer.wrap(encoder.encode(object))));
51 }
52 }
53
54 @Test
55 public void testEncodedSize() throws Exception {
56 IoBufferDecoder<T> decoder = getDecoder();
57 ByteBufferEncoder<T> encoder = getEncoder();
58 for (T object : getObjects()) {
59 int size = encoder.getEncodedSize(object);
60 ByteBuffer out = ByteBuffer.allocate(size);
61 encoder.writeTo(object, out);
62 assertEquals(size, out.position());
63 out.rewind();
64 assertEquals(object, decoder.decode(IoBuffer.wrap(out)));
65 }
66 }
67 }