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.filter;
21
22 import junit.framework.TestCase;
23
24 import org.apache.hadoop.hbase.KeyValue;
25 import org.apache.hadoop.hbase.filter.CompareFilter.CompareOp;
26 import org.apache.hadoop.hbase.util.Bytes;
27
28
29
30
31
32
33
34
35
36 public class TestSingleColumnValueExcludeFilter extends TestCase {
37 private static final byte[] ROW = Bytes.toBytes("test");
38 private static final byte[] COLUMN_FAMILY = Bytes.toBytes("test");
39 private static final byte[] COLUMN_QUALIFIER = Bytes.toBytes("foo");
40 private static final byte[] COLUMN_QUALIFIER_2 = Bytes.toBytes("foo_2");
41 private static final byte[] VAL_1 = Bytes.toBytes("a");
42 private static final byte[] VAL_2 = Bytes.toBytes("ab");
43
44
45
46
47
48 public void testFilterKeyValue() throws Exception {
49 Filter filter = new SingleColumnValueExcludeFilter(COLUMN_FAMILY, COLUMN_QUALIFIER,
50 CompareOp.EQUAL, VAL_1);
51
52
53 KeyValue kv;
54 kv = new KeyValue(ROW, COLUMN_FAMILY, COLUMN_QUALIFIER_2, VAL_1);
55
56 assertTrue("otherColumn", filter.filterKeyValue(kv) == Filter.ReturnCode.INCLUDE);
57 kv = new KeyValue(ROW, COLUMN_FAMILY, COLUMN_QUALIFIER, VAL_1);
58
59 assertTrue("testedMatch", filter.filterKeyValue(kv) == Filter.ReturnCode.SKIP);
60
61 kv = new KeyValue(ROW, COLUMN_FAMILY, COLUMN_QUALIFIER_2, VAL_1);
62 assertTrue("otherColumn", filter.filterKeyValue(kv) == Filter.ReturnCode.INCLUDE);
63 assertFalse("allRemainingWhenMatch", filter.filterAllRemaining());
64
65
66 filter.reset();
67
68 kv = new KeyValue(ROW, COLUMN_FAMILY, COLUMN_QUALIFIER_2, VAL_1);
69 assertTrue("otherColumn", filter.filterKeyValue(kv) == Filter.ReturnCode.INCLUDE);
70
71 kv = new KeyValue(ROW, COLUMN_FAMILY, COLUMN_QUALIFIER, VAL_2);
72 assertTrue("testedMismatch", filter.filterKeyValue(kv) == Filter.ReturnCode.NEXT_ROW);
73
74 kv = new KeyValue(ROW, COLUMN_FAMILY, COLUMN_QUALIFIER_2, VAL_1);
75 assertTrue("otherColumn", filter.filterKeyValue(kv) == Filter.ReturnCode.NEXT_ROW);
76 }
77
78 }