@@ -278,7 +278,7 @@ public void shouldSearchForDocumentsViaAll_negative() throws IOException {
278
278
@ Test
279
279
public void shouldMGetDocument_positive () throws IOException {
280
280
try (RestHighLevelClient restHighLevelClient = cluster .getRestHighLevelClient (LIMITED_USER )) {
281
- MultiGetRequest request = new MultiGetRequest ().add (BOTH_INDEX_PATTERN , ID_1 ).add (BOTH_INDEX_PATTERN , ID_4 );
281
+ MultiGetRequest request = new MultiGetRequest ().add (MARVELOUS_SONGS , ID_1 ).add (MARVELOUS_SONGS , ID_4 );
282
282
283
283
MultiGetResponse response = restHighLevelClient .mget (request , DEFAULT );
284
284
@@ -296,12 +296,35 @@ public void shouldMGetDocument_positive() throws IOException {
296
296
}
297
297
}
298
298
299
+ @ Test
300
+ public void shouldMGetDocument_partial () throws Exception {
301
+ try (RestHighLevelClient restHighLevelClient = cluster .getRestHighLevelClient (LIMITED_USER )) {
302
+ MultiGetRequest request = new MultiGetRequest ().add (MARVELOUS_SONGS , ID_1 ).add (HORRIBLE_SONGS , ID_4 );
303
+
304
+ MultiGetResponse response = restHighLevelClient .mget (request , DEFAULT );
305
+
306
+ MultiGetItemResponse [] responses = response .getResponses ();
307
+ assertThat (responses , arrayWithSize (2 ));
308
+ MultiGetItemResponse firstResult = responses [0 ];
309
+ MultiGetItemResponse secondResult = responses [1 ];
310
+ assertThat (firstResult .getFailure (), nullValue ());
311
+ assertThat (
312
+ firstResult .getResponse (),
313
+ allOf (containDocument (MARVELOUS_SONGS , ID_1 ), documentContainField (FIELD_TITLE , TITLE_MAGNUM_OPUS ))
314
+ );
315
+ assertThat (secondResult .getFailure ().getMessage (), containsString ("no permissions for [indices:data/read/mget[shard]]" ));
316
+ }
317
+ }
318
+
299
319
@ Test
300
320
public void shouldMGetDocument_negative () throws IOException {
301
321
try (RestHighLevelClient restHighLevelClient = cluster .getRestHighLevelClient (LIMITED_USER )) {
302
322
MultiGetRequest request = new MultiGetRequest ().add (HORRIBLE_SONGS , ID_4 );
303
-
304
- assertThatThrownBy (() -> restHighLevelClient .mget (request , DEFAULT ), statusException (FORBIDDEN ));
323
+ MultiGetResponse response = restHighLevelClient .mget (request , DEFAULT );
324
+ MultiGetItemResponse [] responses = response .getResponses ();
325
+ assertThat (responses , arrayWithSize (1 ));
326
+ MultiGetItemResponse firstResult = responses [0 ];
327
+ assertThat (firstResult .getFailure ().getMessage (), containsString ("no permissions for [indices:data/read/mget[shard]]" ));
305
328
}
306
329
}
307
330
@@ -331,8 +354,10 @@ public void shouldMSearchDocument_negative() throws IOException {
331
354
try (RestHighLevelClient restHighLevelClient = cluster .getRestHighLevelClient (LIMITED_USER )) {
332
355
MultiSearchRequest request = new MultiSearchRequest ();
333
356
request .add (queryStringQueryRequest (FORBIDDEN_INDEX_ALIAS , QUERY_TITLE_POISON ));
334
-
335
- assertThatThrownBy (() -> restHighLevelClient .msearch (request , DEFAULT ), statusException (FORBIDDEN ));
357
+ MultiSearchResponse response = restHighLevelClient .msearch (request , DEFAULT );
358
+ MultiSearchResponse .Item [] responses = response .getResponses ();
359
+ assertThat (responses , Matchers .arrayWithSize (1 ));
360
+ assertThat (responses [0 ].getFailure ().getMessage (), containsString ("no permissions for [indices:data/read/search]" ));
336
361
}
337
362
}
338
363
0 commit comments