private RestRepository mockRepository() throws Exception {
Map<String, Object> data = new HashMap<String, Object>();
data.put("field", "value");
String id = "1";
Object[] hit = new Object[]{id, data};
RestRepository mocked = Mockito.mock(RestRepository.class);
ScrollReader.Scroll start = new ScrollReader.Scroll("abcd", 10, Collections.<Object[]>emptyList(), 5, 5);
Mockito.doReturn(start).when(mocked).scroll(Matchers.anyString(), Matchers.any(BytesArray.class), Matchers.any(ScrollReader.class));
ScrollReader.Scroll middle = new ScrollReader.Scroll("efgh", 10, Collections.<Object[]>emptyList(), 3, 3);
Mockito.doReturn(middle).when(mocked).scroll(Matchers.eq("abcd"), Matchers.any(ScrollReader.class));
ScrollReader.Scroll end = new ScrollReader.Scroll("ijkl", 10, Collections.singletonList(hit), 2, 1);
Mockito.doReturn(end).when(mocked).scroll(Matchers.eq("efgh"), Matchers.any(ScrollReader.class));
ScrollReader.Scroll finalScroll = new ScrollReader.Scroll("mnop", 10, true);
Mockito.doReturn(finalScroll).when(mocked).scroll(Matchers.eq("ijkl"), Matchers.any(ScrollReader.class));
RestClient mockClient = Mockito.mock(RestClient.class);
Mockito.when(mockClient.deleteScroll(Matchers.eq("mnop"))).thenReturn(true);
Mockito.when(mockClient.deleteScroll(Matchers.anyString())).thenReturn(false);
Mockito.doReturn(mockClient).when(mocked).getRestClient();
return mocked;
}
}