1 package org.apache.hadoop.hbase.regionserver;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 import static org.junit.Assert.assertEquals;
20
21 import org.apache.hadoop.hbase.HConstants;
22 import org.apache.hadoop.hbase.SmallTests;
23 import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.MultiRequest;
24 import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.RequestHeader;
25 import org.junit.Test;
26 import org.junit.experimental.categories.Category;
27 import org.mockito.Mockito;
28
29 import com.google.protobuf.Message;
30
31
32
33
34
35 @Category(SmallTests.class)
36 public class TestQosFunction {
37 @Test
38 public void testPriority() {
39 HRegionServer hrs = Mockito.mock(HRegionServer.class);
40 AnnotationReadingPriorityFunction qosFunction = new AnnotationReadingPriorityFunction(hrs);
41
42
43 checkMethod("ReplicateWALEntry", HConstants.REPLICATION_QOS, qosFunction);
44
45 checkMethod("OpenRegion", HConstants.HIGH_QOS, qosFunction);
46
47 checkMethod("Multi", HConstants.NORMAL_QOS, qosFunction, MultiRequest.getDefaultInstance());
48 }
49
50 private void checkMethod(final String methodName, final int expected,
51 final AnnotationReadingPriorityFunction qosf) {
52 checkMethod(methodName, expected, qosf, null);
53 }
54
55 private void checkMethod(final String methodName, final int expected,
56 final AnnotationReadingPriorityFunction qosf, final Message param) {
57 RequestHeader.Builder builder = RequestHeader.newBuilder();
58 builder.setMethodName(methodName);
59 assertEquals(methodName, expected, qosf.getPriority(builder.build(), param));
60 }
61 }