1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.hadoop.hbase.mapreduce;
20
21 import static org.junit.Assert.assertEquals;
22
23 import org.apache.hadoop.conf.Configuration;
24 import org.apache.hadoop.hbase.*;
25 import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
26 import org.apache.hadoop.hbase.util.Bytes;
27 import org.junit.experimental.categories.Category;
28
29 import org.junit.Test;
30
31
32
33
34 @Category(SmallTests.class)
35 public class TestSimpleTotalOrderPartitioner {
36 protected final static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();
37 Configuration conf = TEST_UTIL.getConfiguration();
38
39 @Test
40 public void testSplit() throws Exception {
41 String start = "a";
42 String end = "{";
43 SimpleTotalOrderPartitioner<byte []> p =
44 new SimpleTotalOrderPartitioner<byte []>();
45
46 this.conf.set(SimpleTotalOrderPartitioner.START, start);
47 this.conf.set(SimpleTotalOrderPartitioner.END, end);
48 p.setConf(this.conf);
49 ImmutableBytesWritable c = new ImmutableBytesWritable(Bytes.toBytes("c"));
50
51 int partition = p.getPartition(c, HConstants.EMPTY_BYTE_ARRAY, 1);
52 assertEquals(0, partition);
53
54 partition = p.getPartition(c, HConstants.EMPTY_BYTE_ARRAY, 2);
55 assertEquals(0, partition);
56
57 partition = p.getPartition(c, HConstants.EMPTY_BYTE_ARRAY, 3);
58 assertEquals(0, partition);
59 ImmutableBytesWritable q = new ImmutableBytesWritable(Bytes.toBytes("q"));
60 partition = p.getPartition(q, HConstants.EMPTY_BYTE_ARRAY, 2);
61 assertEquals(1, partition);
62 partition = p.getPartition(q, HConstants.EMPTY_BYTE_ARRAY, 3);
63 assertEquals(2, partition);
64
65 ImmutableBytesWritable startBytes =
66 new ImmutableBytesWritable(Bytes.toBytes(start));
67 partition = p.getPartition(startBytes, HConstants.EMPTY_BYTE_ARRAY, 2);
68 assertEquals(0, partition);
69 partition = p.getPartition(startBytes, HConstants.EMPTY_BYTE_ARRAY, 3);
70 assertEquals(0, partition);
71 ImmutableBytesWritable endBytes =
72 new ImmutableBytesWritable(Bytes.toBytes("z"));
73 partition = p.getPartition(endBytes, HConstants.EMPTY_BYTE_ARRAY, 2);
74 assertEquals(1, partition);
75 partition = p.getPartition(endBytes, HConstants.EMPTY_BYTE_ARRAY, 3);
76 assertEquals(2, partition);
77 }
78
79 }
80