1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.hadoop.hbase.codec.keyvalue;
20
21 import java.nio.ByteBuffer;
22
23 import java.util.Collection;
24 import java.util.List;
25
26 import org.apache.hadoop.hbase.KeyValue;
27 import org.apache.hadoop.hbase.KeyValueTestUtil;
28 import org.apache.hadoop.hbase.testclassification.SmallTests;
29 import org.apache.hadoop.hbase.codec.prefixtree.row.TestRowData;
30 import org.apache.hadoop.hbase.codec.prefixtree.row.data.TestRowDataRandomKeyValuesWithTags;
31 import org.apache.hadoop.hbase.codec.prefixtree.row.data.TestRowDataTrivialWithTags;
32 import org.junit.Assert;
33 import org.junit.Test;
34 import org.junit.experimental.categories.Category;
35 import org.junit.runner.RunWith;
36 import org.junit.runners.Parameterized;
37 import org.junit.runners.Parameterized.Parameters;
38
39 @Category(SmallTests.class)
40 @RunWith(Parameterized.class)
41 public class TestKeyValueTool {
42
43 @Parameters
44 public static Collection<Object[]> parameters() {
45 return new TestRowData.InMemory().getAllAsObjectArray();
46 }
47
48 private TestRowData rows;
49
50 public TestKeyValueTool(TestRowData testRows) {
51 this.rows = testRows;
52 }
53
54 @Test
55 public void testRoundTripToBytes() {
56 if(rows instanceof TestRowDataTrivialWithTags || rows instanceof TestRowDataRandomKeyValuesWithTags) {
57 return;
58 }
59 List<KeyValue> kvs = rows.getInputs();
60 ByteBuffer bb = KeyValueTestUtil.toByteBufferAndRewind(kvs, false);
61 List<KeyValue> roundTrippedKvs = KeyValueTestUtil.rewindThenToList(bb, false, false);
62 Assert.assertArrayEquals(kvs.toArray(), roundTrippedKvs.toArray());
63 }
64 }