1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase.hbtop.screen.top;
19
20 import static org.hamcrest.CoreMatchers.is;
21 import static org.junit.Assert.assertThat;
22 import static org.mockito.Mockito.argThat;
23 import static org.mockito.Mockito.verify;
24
25 import java.util.ArrayList;
26 import java.util.List;
27 import org.apache.hadoop.hbase.hbtop.RecordFilter;
28 import org.apache.hadoop.hbase.hbtop.field.Field;
29 import org.apache.hadoop.hbase.hbtop.field.FieldInfo;
30 import org.apache.hadoop.hbase.hbtop.mode.Mode;
31 import org.apache.hadoop.hbase.hbtop.screen.ScreenView;
32 import org.apache.hadoop.hbase.testclassification.SmallTests;
33 import org.junit.Before;
34 import org.junit.Test;
35 import org.junit.experimental.categories.Category;
36 import org.junit.runner.RunWith;
37 import org.mockito.ArgumentMatcher;
38 import org.mockito.Mock;
39 import org.mockito.runners.MockitoJUnitRunner;
40
41
42 @Category(SmallTests.class)
43 @RunWith(MockitoJUnitRunner.class)
44 public class TestFilterDisplayModeScreenPresenter {
45
46 @Mock
47 private FilterDisplayModeScreenView filterDisplayModeScreenView;
48
49 @Mock
50 private TopScreenView topScreenView;
51
52 private FilterDisplayModeScreenPresenter filterDisplayModeScreenPresenter;
53
54 @Before
55 public void setup() {
56 List<Field> fields = new ArrayList<>();
57 for (FieldInfo fieldInfo : Mode.REGION.getFieldInfos()) {
58 fields.add(fieldInfo.getField());
59 }
60
61 List<RecordFilter> filters = new ArrayList<>();
62 filters.add(RecordFilter.parse("NAMESPACE==namespace", fields, true));
63 filters.add(RecordFilter.parse("TABLE==table", fields, true));
64
65 filterDisplayModeScreenPresenter = new FilterDisplayModeScreenPresenter(
66 filterDisplayModeScreenView, filters, topScreenView);
67 }
68
69 @Test
70 public void testInit() {
71 filterDisplayModeScreenPresenter.init();
72
73 verify(filterDisplayModeScreenView).showFilters(argThat(
74 new ArgumentMatcher<List<RecordFilter>>() {
75 @Override
76 @SuppressWarnings("unchecked")
77 public boolean matches(Object argument) {
78 List<RecordFilter> filters = (List<RecordFilter>) argument;
79 return filters.size() == 2
80 && filters.get(0).toString().equals("NAMESPACE==namespace")
81 && filters.get(1).toString().equals("TABLE==table");
82 }
83 }));
84 }
85
86 @Test
87 public void testReturnToTopScreen() {
88 assertThat(filterDisplayModeScreenPresenter.returnToNextScreen(),
89 is((ScreenView) topScreenView));
90 }
91 }