Revision 62892
Added by Katerina Iatropoulou 11 months ago
SolrUtilsTest.java | ||
---|---|---|
66 | 66 |
public void createEprQuery() { |
67 | 67 |
String query = SearchServiceImpl.createEprQuery("(oaftype=result)", refineFields, specialFacets, fieldQueries); |
68 | 68 |
Assert.assertEquals("query=(oaftype=result)" + |
69 |
"&groupby=relfunderid,relfundinglevel0_id,relfundinglevel1_id,relfundinglevel2_id" + |
|
69 |
"&sort=&groupby=relfunderid,relfundinglevel0_id,relfundinglevel1_id,relfundinglevel2_id" +
|
|
70 | 70 |
"&sf=relfundinglevel0_id,relfundinglevel1_id"+ |
71 | 71 |
"&fq=(relfunderid exact ec___::EC) and (relfunderid exact wt___::WT),relfundinglevel0_id exact ec___::EC::SP1," + |
72 | 72 |
"(relfundinglevel1_id exact ec___::EC::SP1::VALUE1) or (relfundinglevel1_id exact ec___::EC::SP1::VALUE2)", query); |
... | ... | |
75 | 75 |
//empty refine, empty fq, empty fc |
76 | 76 |
query = SearchServiceImpl.createEprQuery("(oaftype=result)", new ArrayList<String>(), new ArrayList<>(),new ArrayList<String>()); |
77 | 77 |
Assert.assertEquals("query=(oaftype=result)" + |
78 |
"&sort="+ |
|
78 | 79 |
"&groupby=" + |
79 | 80 |
"&sf="+ |
80 | 81 |
"&fq=", query); |
... | ... | |
82 | 83 |
//empty refine, empty fq |
83 | 84 |
query = SearchServiceImpl.createEprQuery("(oaftype=result)", new ArrayList<String>(), specialFacets,new ArrayList<String>()); |
84 | 85 |
Assert.assertEquals("query=(oaftype=result)" + |
86 |
"&sort=" + |
|
85 | 87 |
"&groupby=" + |
86 | 88 |
"&sf=relfundinglevel0_id,relfundinglevel1_id"+ |
87 | 89 |
"&fq=", query); |
... | ... | |
90 | 92 |
//empty fq, empty sf |
91 | 93 |
query = SearchServiceImpl.createEprQuery("(oaftype=result)", refineFields, new ArrayList<>(), new ArrayList<String>()); |
92 | 94 |
Assert.assertEquals("query=(oaftype=result)" + |
95 |
"&sort=" + |
|
93 | 96 |
"&groupby=relfunderid,relfundinglevel0_id,relfundinglevel1_id,relfundinglevel2_id" + |
94 | 97 |
"&sf="+ |
95 | 98 |
"&fq=", query); |
... | ... | |
97 | 100 |
//empty refine, empty sf |
98 | 101 |
query = SearchServiceImpl.createEprQuery("(oaftype=result)", new ArrayList<String>(), new ArrayList<>(), fieldQueries); |
99 | 102 |
Assert.assertEquals("query=(oaftype=result)" + |
103 |
"&sort=" + |
|
100 | 104 |
"&groupby=" + |
101 | 105 |
"&sf="+ |
102 | 106 |
"&fq=(relfunderid exact ec___::EC) and (relfunderid exact wt___::WT),relfundinglevel0_id exact ec___::EC::SP1," + |
... | ... | |
105 | 109 |
//empty refine, empty sf |
106 | 110 |
query = SearchServiceImpl.createEprQuery("(oaftype=result)", new ArrayList<String>(), new ArrayList<>(), fieldQueries); |
107 | 111 |
Assert.assertEquals("query=(oaftype=result)" + |
112 |
"&sort=" + |
|
108 | 113 |
"&groupby=" + |
109 | 114 |
"&sf="+ |
110 | 115 |
"&fq=(relfunderid exact ec___::EC) and (relfunderid exact wt___::WT),relfundinglevel0_id exact ec___::EC::SP1," + |
... | ... | |
113 | 118 |
//empty query, empty fc |
114 | 119 |
query = SearchServiceImpl.createEprQuery("", new ArrayList<String>(), new ArrayList<>(), new ArrayList<String>()); |
115 | 120 |
Assert.assertEquals("query=" + |
121 |
"&sort=" + |
|
116 | 122 |
"&groupby=" + |
117 | 123 |
"&sf="+ |
118 | 124 |
"&fq=", query); |
... | ... | |
120 | 126 |
//null values |
121 | 127 |
query = SearchServiceImpl.createEprQuery(null, null, null,null); |
122 | 128 |
Assert.assertEquals("query=" + |
129 |
"&sort=" + |
|
123 | 130 |
"&groupby=" + |
124 | 131 |
"&sf="+ |
125 | 132 |
"&fq=", query); |
... | ... | |
127 | 134 |
} |
128 | 135 |
|
129 | 136 |
@Test |
137 |
public void createEprQueryWithSort() { |
|
138 |
String query = SearchServiceImpl.createEprQuery("(oaftype=result) sortBy dateofcollection/sort.ascending, impulse/sort.descending", refineFields, specialFacets, fieldQueries); |
|
139 |
Assert.assertEquals("query=(oaftype=result) sortBy dateofcollection/sort.ascending, impulse/sort.descending" + |
|
140 |
"&sort=dateofcollection/sort.ascending, impulse/sort.descending" + |
|
141 |
"&groupby=relfunderid,relfundinglevel0_id,relfundinglevel1_id,relfundinglevel2_id" + |
|
142 |
"&sf=relfundinglevel0_id,relfundinglevel1_id"+ |
|
143 |
"&fq=(relfunderid exact ec___::EC) and (relfunderid exact wt___::WT),relfundinglevel0_id exact ec___::EC::SP1," + |
|
144 |
"(relfundinglevel1_id exact ec___::EC::SP1::VALUE1) or (relfundinglevel1_id exact ec___::EC::SP1::VALUE2)", query); |
|
145 |
|
|
146 |
|
|
147 |
//empty refine, empty fq, empty fc |
|
148 |
query = SearchServiceImpl.createEprQuery("(oaftype=result)", new ArrayList<String>(), new ArrayList<>(),new ArrayList<String>()); |
|
149 |
Assert.assertEquals("query=(oaftype=result)" + |
|
150 |
"&sort="+ |
|
151 |
"&groupby=" + |
|
152 |
"&sf="+ |
|
153 |
"&fq=", query); |
|
154 |
|
|
155 |
//empty refine, empty fq |
|
156 |
query = SearchServiceImpl.createEprQuery("(oaftype=result)", new ArrayList<String>(), specialFacets,new ArrayList<String>()); |
|
157 |
Assert.assertEquals("query=(oaftype=result)" + |
|
158 |
"&sort=" + |
|
159 |
"&groupby=" + |
|
160 |
"&sf=relfundinglevel0_id,relfundinglevel1_id"+ |
|
161 |
"&fq=", query); |
|
162 |
|
|
163 |
|
|
164 |
//empty fq, empty sf |
|
165 |
query = SearchServiceImpl.createEprQuery("(oaftype=result)", refineFields, new ArrayList<>(), new ArrayList<String>()); |
|
166 |
Assert.assertEquals("query=(oaftype=result)" + |
|
167 |
"&sort=" + |
|
168 |
"&groupby=relfunderid,relfundinglevel0_id,relfundinglevel1_id,relfundinglevel2_id" + |
|
169 |
"&sf="+ |
|
170 |
"&fq=", query); |
|
171 |
|
|
172 |
//empty refine, empty sf |
|
173 |
query = SearchServiceImpl.createEprQuery("(oaftype=result)", new ArrayList<String>(), new ArrayList<>(), fieldQueries); |
|
174 |
Assert.assertEquals("query=(oaftype=result)" + |
|
175 |
"&sort=" + |
|
176 |
"&groupby=" + |
|
177 |
"&sf="+ |
|
178 |
"&fq=(relfunderid exact ec___::EC) and (relfunderid exact wt___::WT),relfundinglevel0_id exact ec___::EC::SP1," + |
|
179 |
"(relfundinglevel1_id exact ec___::EC::SP1::VALUE1) or (relfundinglevel1_id exact ec___::EC::SP1::VALUE2)", query); |
|
180 |
|
|
181 |
//empty refine, empty sf |
|
182 |
query = SearchServiceImpl.createEprQuery("(oaftype=result)", new ArrayList<String>(), new ArrayList<>(), fieldQueries); |
|
183 |
Assert.assertEquals("query=(oaftype=result)" + |
|
184 |
"&sort=" + |
|
185 |
"&groupby=" + |
|
186 |
"&sf="+ |
|
187 |
"&fq=(relfunderid exact ec___::EC) and (relfunderid exact wt___::WT),relfundinglevel0_id exact ec___::EC::SP1," + |
|
188 |
"(relfundinglevel1_id exact ec___::EC::SP1::VALUE1) or (relfundinglevel1_id exact ec___::EC::SP1::VALUE2)", query); |
|
189 |
|
|
190 |
//empty query, empty fc |
|
191 |
query = SearchServiceImpl.createEprQuery("", new ArrayList<String>(), new ArrayList<>(), new ArrayList<String>()); |
|
192 |
Assert.assertEquals("query=" + |
|
193 |
"&sort=" + |
|
194 |
"&groupby=" + |
|
195 |
"&sf="+ |
|
196 |
"&fq=", query); |
|
197 |
|
|
198 |
//null values |
|
199 |
query = SearchServiceImpl.createEprQuery(null, null, null,null); |
|
200 |
Assert.assertEquals("query=" + |
|
201 |
"&sort=" + |
|
202 |
"&groupby=" + |
|
203 |
"&sf="+ |
|
204 |
"&fq=", query); |
|
205 |
|
|
206 |
} |
|
207 |
|
|
208 |
@Test |
|
130 | 209 |
public void extractQueryOptions() throws IOException, CQLParseException { |
131 | 210 |
CqlTranslator cqlTranslator = new CqlTranslatorImpl(); |
132 | 211 |
|
133 |
NamedList<String> actual = SolrResultSetOptionsUtil.extractQueryOptions(SearchServiceImpl.createEprQuery("(oaftype=result)", refineFields, specialFacets, fieldQueries)); |
|
212 |
NamedList<String> actual = SolrResultSetOptionsUtil.extractQueryOptions(SearchServiceImpl |
|
213 |
.createEprQuery("(oaftype=result)", refineFields, specialFacets, fieldQueries)); |
|
214 |
|
|
134 | 215 |
Assert.assertEquals(cqlTranslator.toLucene("(oaftype=result)"), actual.get("q")); |
135 | 216 |
Assert.assertEquals("__result", actual.get("fl")); |
136 | 217 |
Assert.assertEquals("true", actual.get("shards.tolerant")); |
... | ... | |
140 | 221 |
Assert.assertEquals(refineFields.size(), actual.getAll("facet.field").size()); |
141 | 222 |
Assert.assertTrue(actual.getAll("facet.field").contains("relfunderid")); |
142 | 223 |
Assert.assertTrue(actual.getAll("facet.field").contains("relfundinglevel1_id")); |
224 |
System.out.println(actual.getAll("facet.field")); |
|
143 | 225 |
Assert.assertTrue(actual.getAll("facet.field").contains("relfundinglevel2_id")); |
144 | 226 |
Assert.assertFalse(actual.getAll("facet.field").contains("relfundinglevel3_id")); |
145 | 227 |
|
... | ... | |
255 | 337 |
Assert.assertTrue(actual.getAll("fq").isEmpty()); |
256 | 338 |
} |
257 | 339 |
|
340 |
@Test |
|
341 |
public void extractQueryOptionsWithSort() throws IOException, CQLParseException { |
|
342 |
CqlTranslator cqlTranslator = new CqlTranslatorImpl(); |
|
343 |
|
|
344 |
NamedList<String> actual = SolrResultSetOptionsUtil.extractQueryOptions(SearchServiceImpl |
|
345 |
.createEprQuery("(oaftype=result)", refineFields, specialFacets, fieldQueries)); |
|
346 |
|
|
347 |
//no sort option |
|
348 |
Assert.assertEquals(cqlTranslator.toLucene("(oaftype=result)"), actual.get("q")); |
|
349 |
Assert.assertEquals(0, actual.getAll("sort").size()); |
|
350 |
Assert.assertTrue(actual.getAll("sort").isEmpty()); |
|
351 |
|
|
352 |
//one sort option |
|
353 |
actual = SolrResultSetOptionsUtil.extractQueryOptions(SearchServiceImpl.createEprQuery("(oaftype=result) sortBy dateofcollection/sort.ascending", new ArrayList<String>(), new ArrayList<>(), new ArrayList<String>())); |
|
354 |
Assert.assertEquals(cqlTranslator.toLucene("(oaftype=result) sortBy dateofcollection/sort.ascending"), actual.get("q")); |
|
355 |
Assert.assertEquals(1, actual.getAll("sort").size()); |
|
356 |
Assert.assertEquals(actual.getAll("sort").get(0),"dateofcollection asc"); |
|
357 |
|
|
358 |
|
|
359 |
//multiple sort options |
|
360 |
actual = SolrResultSetOptionsUtil.extractQueryOptions(SearchServiceImpl.createEprQuery("(oaftype=result) sortBy dateofcollection/sort.ascending, impulse/sort.ascending, impulse/sort.descending", new ArrayList<String>(), new ArrayList<>(), new ArrayList<String>())); |
|
361 |
Assert.assertEquals(cqlTranslator.toLucene("(oaftype=result)"), actual.get("q")); |
|
362 |
Assert.assertEquals(cqlTranslator.toLucene("(oaftype=result) sortBy dateofcollection/sort.ascending, impulse/sort.ascending, impulse/sort.descending"), actual.get("q")); |
|
363 |
Assert.assertEquals(3, actual.getAll("sort").size()); |
|
364 |
Assert.assertEquals("dateofcollection asc", actual.getAll("sort").get(0)); |
|
365 |
Assert.assertEquals("impulse asc", actual.getAll("sort").get(1)); |
|
366 |
Assert.assertEquals("impulse desc", actual.getAll("sort").get(2)); |
|
367 |
|
|
368 |
} |
|
369 |
|
|
258 | 370 |
@Test(expected=CQLParseException.class) |
259 | 371 |
public void extractQueryOptionsEmptyQuery() throws IOException, CQLParseException { |
260 | 372 |
NamedList<String> actual = SolrResultSetOptionsUtil.extractQueryOptions(SearchServiceImpl.createEprQuery(null, null, null, null)); |
Also available in: Unified diff