1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.hadoop.hbase.regionserver;
21
22 import org.apache.hadoop.hbase.HRegionInfo;
23 import org.apache.hadoop.hbase.HTableDescriptor;
24 import org.apache.hadoop.hbase.util.Bytes;
25 import org.apache.hadoop.hbase.util.MD5Hash;
26
27 import org.junit.Test;
28 import static org.junit.Assert.*;
29
30 public class TestHRegionInfo {
31 @Test
32 public void testCreateHRegionInfoName() throws Exception {
33 String tableName = "tablename";
34 final byte [] tn = Bytes.toBytes(tableName);
35 String startKey = "startkey";
36 final byte [] sk = Bytes.toBytes(startKey);
37 String id = "id";
38
39
40 byte [] name = HRegionInfo.createRegionName(tn, sk, id, false);
41 String nameStr = Bytes.toString(name);
42 assertEquals(tableName + "," + startKey + "," + id, nameStr);
43
44
45
46 String md5HashInHex = MD5Hash.getMD5AsHex(name);
47 assertEquals(HRegionInfo.MD5_HEX_LENGTH, md5HashInHex.length());
48 name = HRegionInfo.createRegionName(tn, sk, id, true);
49 nameStr = Bytes.toString(name);
50 assertEquals(tableName + "," + startKey + ","
51 + id + "." + md5HashInHex + ".",
52 nameStr);
53 }
54
55 @Test
56 public void testContainsRange() {
57 HTableDescriptor tableDesc = new HTableDescriptor("testtable");
58 HRegionInfo hri = new HRegionInfo(
59 tableDesc, Bytes.toBytes("a"), Bytes.toBytes("g"));
60
61 assertTrue(hri.containsRange(Bytes.toBytes("a"), Bytes.toBytes("a")));
62
63 assertTrue(hri.containsRange(Bytes.toBytes("b"), Bytes.toBytes("c")));
64
65 assertTrue(hri.containsRange(Bytes.toBytes("a"), Bytes.toBytes("c")));
66
67 assertTrue(hri.containsRange(Bytes.toBytes("c"), Bytes.toBytes("c")));
68
69 assertFalse(hri.containsRange(Bytes.toBytes("a"), Bytes.toBytes("g")));
70
71 assertFalse(hri.containsRange(Bytes.toBytes("g"), Bytes.toBytes("g")));
72
73 assertFalse(hri.containsRange(Bytes.toBytes("z"), Bytes.toBytes("z")));
74
75
76 try {
77 hri.containsRange(Bytes.toBytes("z"), Bytes.toBytes("a"));
78 fail("Invalid range did not throw IAE");
79 } catch (IllegalArgumentException iae) {
80 }
81 }
82 }