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 import static org.mockito.Mockito.when;
21
22 import org.apache.hadoop.conf.Configuration;
23 import org.apache.hadoop.hbase.HBaseConfiguration;
24 import org.apache.hadoop.hbase.HConstants;
25 import org.apache.hadoop.hbase.testclassification.SmallTests;
26 import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.MultiRequest;
27 import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.RequestHeader;
28 import org.junit.Test;
29 import org.junit.experimental.categories.Category;
30 import org.mockito.Mockito;
31
32 import com.google.protobuf.Message;
33
34
35
36
37
38 @Category(SmallTests.class)
39 public class TestQosFunction {
40 @Test
41 public void testPriority() {
42 Configuration conf = HBaseConfiguration.create();
43 RSRpcServices rpcServices = Mockito.mock(RSRpcServices.class);
44 when(rpcServices.getConfiguration()).thenReturn(conf);
45
46 AnnotationReadingPriorityFunction qosFunction =
47 new AnnotationReadingPriorityFunction(rpcServices);
48
49
50 checkMethod("ReplicateWALEntry", HConstants.REPLICATION_QOS, qosFunction);
51
52 checkMethod("OpenRegion", HConstants.ADMIN_QOS, qosFunction);
53
54 checkMethod("Multi", HConstants.NORMAL_QOS, qosFunction, MultiRequest.getDefaultInstance());
55 }
56
57 private void checkMethod(final String methodName, final int expected,
58 final AnnotationReadingPriorityFunction qosf) {
59 checkMethod(methodName, expected, qosf, null);
60 }
61
62 private void checkMethod(final String methodName, final int expected,
63 final AnnotationReadingPriorityFunction qosf, final Message param) {
64 RequestHeader.Builder builder = RequestHeader.newBuilder();
65 builder.setMethodName(methodName);
66 assertEquals(methodName, expected, qosf.getPriority(builder.build(), param));
67 }
68 }