1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase.protobuf;
19
20 import static org.junit.Assert.*;
21
22 import java.io.IOException;
23 import java.util.ArrayList;
24 import java.util.List;
25
26 import org.apache.hadoop.hbase.Cell;
27 import org.apache.hadoop.hbase.CellScanner;
28 import org.apache.hadoop.hbase.KeyValue;
29 import org.apache.hadoop.hbase.SmallTests;
30 import org.apache.hadoop.hbase.util.Bytes;
31 import org.junit.Test;
32 import org.junit.experimental.categories.Category;
33
34
35 @Category(SmallTests.class)
36 public class TestReplicationProtobuf {
37
38
39
40
41 @Test
42 public void testGetCellScanner() throws IOException {
43 List<Cell> a = new ArrayList<Cell>();
44 KeyValue akv = new KeyValue(Bytes.toBytes("a"), -1L);
45 a.add(akv);
46
47 a.add(new KeyValue(Bytes.toBytes("aa"), -1L));
48 a.add(new KeyValue(Bytes.toBytes("aaa"), -1L));
49 List<Cell> b = new ArrayList<Cell>();
50 KeyValue bkv = new KeyValue(Bytes.toBytes("b"), -1L);
51 a.add(bkv);
52 List<Cell> c = new ArrayList<Cell>();
53 KeyValue ckv = new KeyValue(Bytes.toBytes("c"), -1L);
54 c.add(ckv);
55 List<List<? extends Cell>> all = new ArrayList<List<? extends Cell>>();
56 all.add(a);
57 all.add(b);
58 all.add(c);
59 CellScanner scanner = ReplicationProtbufUtil.getCellScanner(all, 0);
60 testAdvancetHasSameRow(scanner, akv);
61
62 scanner.advance();
63
64 scanner.advance();
65 testAdvancetHasSameRow(scanner, bkv);
66 testAdvancetHasSameRow(scanner, ckv);
67 assertFalse(scanner.advance());
68 }
69
70 private void testAdvancetHasSameRow(CellScanner scanner, final KeyValue kv) throws IOException {
71 scanner.advance();
72 assertTrue(Bytes.equals(scanner.current().getRowArray(), scanner.current().getRowOffset(),
73 scanner.current().getRowLength(),
74 kv.getRowArray(), kv.getRowOffset(), kv.getRowLength()));
75 }
76 }