1
1
package com .linkedin .metadata .search .utils ;
2
2
3
+ import static com .linkedin .metadata .Constants .*;
3
4
import static org .testng .Assert .assertEquals ;
4
5
6
+ import com .linkedin .data .template .SetMode ;
7
+ import com .linkedin .metadata .query .GroupingCriterion ;
8
+ import com .linkedin .metadata .query .GroupingCriterionArray ;
9
+ import com .linkedin .metadata .query .GroupingSpec ;
5
10
import com .linkedin .metadata .query .SearchFlags ;
6
11
import java .util .Set ;
7
12
import org .testng .annotations .Test ;
8
13
9
14
public class SearchUtilsTest {
10
15
11
- @ Test
12
- public void testApplyDefaultSearchFlags () {
13
- SearchFlags defaultFlags =
16
+ private SearchFlags getDefaultSearchFlags () {
17
+ return setConvertSchemaFieldsToDatasets (
14
18
new SearchFlags ()
15
19
.setFulltext (true )
16
20
.setSkipCache (true )
17
21
.setSkipAggregates (true )
18
22
.setMaxAggValues (1 )
19
- .setSkipHighlighting (true )
20
- .setConvertSchemaFieldsToDatasets (true );
23
+ .setSkipHighlighting (true ),
24
+ true );
25
+ }
26
+
27
+ private SearchFlags setConvertSchemaFieldsToDatasets (SearchFlags flags , boolean value ) {
28
+ if (value ) {
29
+ return flags .setGroupingSpec (
30
+ new GroupingSpec ()
31
+ .setGroupingCriteria (
32
+ new GroupingCriterionArray (
33
+ new GroupingCriterion ()
34
+ .setRawEntityType (SCHEMA_FIELD_ENTITY_NAME )
35
+ .setGroupingEntityType (DATASET_ENTITY_NAME ))));
36
+ } else {
37
+ return flags .setGroupingSpec (null , SetMode .REMOVE_IF_NULL );
38
+ }
39
+ }
40
+
41
+ @ Test
42
+ public void testApplyDefaultSearchFlags () {
43
+ SearchFlags defaultFlags = getDefaultSearchFlags ();
21
44
22
45
assertEquals (
23
46
SearchUtils .applyDefaultSearchFlags (null , "not empty" , defaultFlags ),
@@ -31,17 +54,17 @@ public void testApplyDefaultSearchFlags() {
31
54
.setSkipCache (false )
32
55
.setSkipAggregates (false )
33
56
.setMaxAggValues (2 )
34
- .setSkipHighlighting (false )
35
- .setConvertSchemaFieldsToDatasets (false ),
57
+ .setSkipHighlighting (false ),
36
58
"not empty" ,
37
59
defaultFlags ),
38
- new SearchFlags ()
39
- .setFulltext (false )
40
- .setSkipAggregates (false )
41
- .setSkipCache (false )
42
- .setMaxAggValues (2 )
43
- .setSkipHighlighting (false )
44
- .setConvertSchemaFieldsToDatasets (false ),
60
+ setConvertSchemaFieldsToDatasets (
61
+ new SearchFlags ()
62
+ .setFulltext (false )
63
+ .setSkipAggregates (false )
64
+ .setSkipCache (false )
65
+ .setMaxAggValues (2 )
66
+ .setSkipHighlighting (false ),
67
+ SearchUtils .convertSchemaFieldToDataset (defaultFlags )),
45
68
"Expected no default values" );
46
69
47
70
assertEquals (
@@ -54,13 +77,14 @@ public void testApplyDefaultSearchFlags() {
54
77
.setSkipHighlighting (false ),
55
78
null ,
56
79
defaultFlags ),
57
- new SearchFlags ()
58
- .setFulltext (false )
59
- .setSkipAggregates (false )
60
- .setSkipCache (false )
61
- .setMaxAggValues (2 )
62
- .setSkipHighlighting (true )
63
- .setConvertSchemaFieldsToDatasets (defaultFlags .isConvertSchemaFieldsToDatasets ()),
80
+ setConvertSchemaFieldsToDatasets (
81
+ new SearchFlags ()
82
+ .setFulltext (false )
83
+ .setSkipAggregates (false )
84
+ .setSkipCache (false )
85
+ .setMaxAggValues (2 )
86
+ .setSkipHighlighting (true ),
87
+ SearchUtils .convertSchemaFieldToDataset (defaultFlags )),
64
88
"Expected skip highlight due to query null query" );
65
89
for (String query : Set .of ("*" , "" )) {
66
90
assertEquals (
@@ -73,104 +97,105 @@ public void testApplyDefaultSearchFlags() {
73
97
.setSkipHighlighting (false ),
74
98
query ,
75
99
defaultFlags ),
76
- new SearchFlags ()
77
- .setFulltext (false )
78
- .setSkipAggregates (false )
79
- .setSkipCache (false )
80
- .setMaxAggValues (2 )
81
- .setSkipHighlighting (true )
82
- .setConvertSchemaFieldsToDatasets (defaultFlags .isConvertSchemaFieldsToDatasets ()),
100
+ setConvertSchemaFieldsToDatasets (
101
+ new SearchFlags ()
102
+ .setFulltext (false )
103
+ .setSkipAggregates (false )
104
+ .setSkipCache (false )
105
+ .setMaxAggValues (2 )
106
+ .setSkipHighlighting (true ),
107
+ SearchUtils .convertSchemaFieldToDataset (defaultFlags )),
83
108
String .format ("Expected skip highlight due to query string `%s`" , query ));
84
109
}
85
110
86
111
assertEquals (
87
112
SearchUtils .applyDefaultSearchFlags (
88
113
new SearchFlags ().setFulltext (false ), "not empty" , defaultFlags ),
89
- new SearchFlags ()
90
- .setFulltext (false )
91
- .setSkipAggregates (true )
92
- .setSkipCache (true )
93
- .setMaxAggValues (1 )
94
- .setSkipHighlighting (true )
95
- .setConvertSchemaFieldsToDatasets (defaultFlags .isConvertSchemaFieldsToDatasets ()),
114
+ setConvertSchemaFieldsToDatasets (
115
+ new SearchFlags ()
116
+ .setFulltext (false )
117
+ .setSkipAggregates (true )
118
+ .setSkipCache (true )
119
+ .setMaxAggValues (1 )
120
+ .setSkipHighlighting (true ),
121
+ SearchUtils .convertSchemaFieldToDataset (defaultFlags )),
96
122
"Expected all default values except fulltext" );
97
123
assertEquals (
98
124
SearchUtils .applyDefaultSearchFlags (
99
125
new SearchFlags ().setSkipCache (false ), "not empty" , defaultFlags ),
100
- new SearchFlags ()
101
- .setFulltext (true )
102
- .setSkipAggregates (true )
103
- .setSkipCache (false )
104
- .setMaxAggValues (1 )
105
- .setSkipHighlighting (true )
106
- .setConvertSchemaFieldsToDatasets (defaultFlags .isConvertSchemaFieldsToDatasets ()),
126
+ setConvertSchemaFieldsToDatasets (
127
+ new SearchFlags ()
128
+ .setFulltext (true )
129
+ .setSkipAggregates (true )
130
+ .setSkipCache (false )
131
+ .setMaxAggValues (1 )
132
+ .setSkipHighlighting (true ),
133
+ SearchUtils .convertSchemaFieldToDataset (defaultFlags )),
107
134
"Expected all default values except skipCache" );
108
135
assertEquals (
109
136
SearchUtils .applyDefaultSearchFlags (
110
137
new SearchFlags ().setSkipAggregates (false ), "not empty" , defaultFlags ),
111
- new SearchFlags ()
112
- .setFulltext (true )
113
- .setSkipAggregates (false )
114
- .setSkipCache (true )
115
- .setMaxAggValues (1 )
116
- .setSkipHighlighting (true )
117
- .setConvertSchemaFieldsToDatasets (defaultFlags .isConvertSchemaFieldsToDatasets ()),
138
+ setConvertSchemaFieldsToDatasets (
139
+ new SearchFlags ()
140
+ .setFulltext (true )
141
+ .setSkipAggregates (false )
142
+ .setSkipCache (true )
143
+ .setMaxAggValues (1 )
144
+ .setSkipHighlighting (true ),
145
+ SearchUtils .convertSchemaFieldToDataset (defaultFlags )),
118
146
"Expected all default values except skipAggregates" );
119
147
assertEquals (
120
148
SearchUtils .applyDefaultSearchFlags (
121
149
new SearchFlags ().setMaxAggValues (2 ), "not empty" , defaultFlags ),
122
- new SearchFlags ()
123
- .setFulltext (true )
124
- .setSkipAggregates (true )
125
- .setSkipCache (true )
126
- .setMaxAggValues (2 )
127
- .setSkipHighlighting (true )
128
- .setConvertSchemaFieldsToDatasets (defaultFlags .isConvertSchemaFieldsToDatasets ()),
150
+ setConvertSchemaFieldsToDatasets (
151
+ new SearchFlags ()
152
+ .setFulltext (true )
153
+ .setSkipAggregates (true )
154
+ .setSkipCache (true )
155
+ .setMaxAggValues (2 )
156
+ .setSkipHighlighting (true ),
157
+ SearchUtils .convertSchemaFieldToDataset (defaultFlags )),
129
158
"Expected all default values except maxAggValues" );
130
159
assertEquals (
131
160
SearchUtils .applyDefaultSearchFlags (
132
161
new SearchFlags ().setSkipHighlighting (false ), "not empty" , defaultFlags ),
133
- new SearchFlags ()
134
- .setFulltext (true )
135
- .setSkipAggregates (true )
136
- .setSkipCache (true )
137
- .setMaxAggValues (1 )
138
- .setSkipHighlighting (false )
139
- .setConvertSchemaFieldsToDatasets (defaultFlags .isConvertSchemaFieldsToDatasets ()),
162
+ setConvertSchemaFieldsToDatasets (
163
+ new SearchFlags ()
164
+ .setFulltext (true )
165
+ .setSkipAggregates (true )
166
+ .setSkipCache (true )
167
+ .setMaxAggValues (1 )
168
+ .setSkipHighlighting (false ),
169
+ SearchUtils .convertSchemaFieldToDataset (defaultFlags )),
140
170
"Expected all default values except skipHighlighting" );
141
171
}
142
172
143
173
@ Test
144
174
public void testImmutableDefaults () throws CloneNotSupportedException {
145
- SearchFlags defaultFlags =
146
- new SearchFlags ()
147
- .setFulltext (true )
148
- .setSkipCache (true )
149
- .setSkipAggregates (true )
150
- .setMaxAggValues (1 )
151
- .setSkipHighlighting (true )
152
- .setConvertSchemaFieldsToDatasets (true );
175
+ SearchFlags defaultFlags = getDefaultSearchFlags ();
153
176
154
177
SearchFlags copyFlags = defaultFlags .copy ();
155
178
156
179
assertEquals (
157
180
SearchUtils .applyDefaultSearchFlags (
181
+ setConvertSchemaFieldsToDatasets (
182
+ new SearchFlags ()
183
+ .setFulltext (false )
184
+ .setSkipCache (false )
185
+ .setSkipAggregates (false )
186
+ .setMaxAggValues (2 )
187
+ .setSkipHighlighting (false ),
188
+ SearchUtils .convertSchemaFieldToDataset (defaultFlags )),
189
+ "not empty" ,
190
+ defaultFlags ),
191
+ setConvertSchemaFieldsToDatasets (
158
192
new SearchFlags ()
159
193
.setFulltext (false )
160
- .setSkipCache (false )
161
194
.setSkipAggregates (false )
195
+ .setSkipCache (false )
162
196
.setMaxAggValues (2 )
163
- .setSkipHighlighting (false )
164
- .setConvertSchemaFieldsToDatasets (false ),
165
- "not empty" ,
166
- defaultFlags ),
167
- new SearchFlags ()
168
- .setFulltext (false )
169
- .setSkipAggregates (false )
170
- .setSkipCache (false )
171
- .setMaxAggValues (2 )
172
- .setSkipHighlighting (false )
173
- .setConvertSchemaFieldsToDatasets (false ),
197
+ .setSkipHighlighting (false ),
198
+ SearchUtils .convertSchemaFieldToDataset (defaultFlags )),
174
199
"Expected no default values" );
175
200
176
201
assertEquals (defaultFlags , copyFlags , "Expected defaults to be unmodified" );
0 commit comments