1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.chukwa;
19
20
21 import java.io.IOException;
22 import junit.framework.TestCase;
23 import org.apache.hadoop.io.DataInputBuffer;
24 import org.apache.hadoop.io.DataOutputBuffer;
25
26 public class ChunkImplTest extends TestCase {
27 public void testVersion() {
28 ChunkBuilder cb = new ChunkBuilder();
29 cb.addRecord("foo".getBytes());
30 cb.addRecord("bar".getBytes());
31 cb.addRecord("baz".getBytes());
32 Chunk c = cb.getChunk();
33 DataOutputBuffer ob = new DataOutputBuffer(c.getSerializedSizeEstimate());
34 try {
35 c.write(ob);
36 DataInputBuffer ib = new DataInputBuffer();
37 ib.reset(ob.getData(), c.getSerializedSizeEstimate());
38 int version = ib.readInt();
39 assertEquals(version, ChunkImpl.PROTOCOL_VERSION);
40 } catch (IOException e) {
41 e.printStackTrace();
42 fail("Should nor raise any exception");
43 }
44 }
45
46 public void testWrongVersion() {
47 ChunkBuilder cb = new ChunkBuilder();
48 cb.addRecord("foo".getBytes());
49 cb.addRecord("bar".getBytes());
50 cb.addRecord("baz".getBytes());
51 Chunk c = cb.getChunk();
52 DataOutputBuffer ob = new DataOutputBuffer(c.getSerializedSizeEstimate());
53 try {
54 c.write(ob);
55 DataInputBuffer ib = new DataInputBuffer();
56 ib.reset(ob.getData(), c.getSerializedSizeEstimate());
57
58 ChunkImpl.PROTOCOL_VERSION = ChunkImpl.PROTOCOL_VERSION + 1;
59 ChunkImpl.read(ib);
60 fail("Should have raised an IOexception");
61 } catch (IOException e) {
62
63 }
64 }
65
66 public void testTag() {
67 ChunkBuilder cb = new ChunkBuilder();
68 cb.addRecord("foo".getBytes());
69 cb.addRecord("bar".getBytes());
70 cb.addRecord("baz".getBytes());
71 Chunk c = cb.getChunk();
72 assertNull(c.getTag("foo"));
73 c.addTag("foo=\"bar\"");
74 assertEquals("bar", c.getTag("foo"));
75 }
76 }