reader.setRepository(this.repository); reader.setMethodName(this.methodName); reader.setPageSize(this.pageSize); reader.setCurrentItemCount(this.currentItemCount); reader.setMaxItemCount(this.maxItemCount);
@Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); sorts = new HashMap<>(); sorts.put("id", Direction.ASC); reader = new RepositoryItemReader<>(); reader.setRepository(repository); reader.setPageSize(1); reader.setSort(sorts); reader.setMethodName("findAll"); }
@Test @SuppressWarnings("serial") public void testJumpToItem() throws Exception { reader.setPageSize(100); ArgumentCaptor<PageRequest> pageRequestContainer = ArgumentCaptor.forClass(PageRequest.class); when(repository.findAll(pageRequestContainer.capture())).thenReturn(new PageImpl<>(new ArrayList<Object>() {{ add(new Object()); }})); reader.jumpToItem(485); Pageable pageRequest = pageRequestContainer.getValue(); assertEquals(400, pageRequest.getOffset()); assertEquals(4, pageRequest.getPageNumber()); assertEquals(100, pageRequest.getPageSize()); assertEquals("id: ASC", pageRequest.getSort().toString()); }
@Test public void testDifferentTypes() throws Exception { TestRepository differentRepository = mock(TestRepository.class); RepositoryItemReader<String> reader = new RepositoryItemReader<>(); sorts = new HashMap<>(); sorts.put("id", Direction.ASC); reader.setRepository(differentRepository); reader.setPageSize(1); reader.setSort(sorts); reader.setMethodName("findFirstNames"); ArgumentCaptor<PageRequest> pageRequestContainer = ArgumentCaptor.forClass(PageRequest.class); when(differentRepository.findFirstNames(pageRequestContainer.capture())).thenReturn(new PageImpl<>(new ArrayList<String>(){{ add("result"); }})); assertEquals("result", reader.doRead()); Pageable pageRequest = pageRequestContainer.getValue(); assertEquals(0, pageRequest.getOffset()); assertEquals(0, pageRequest.getPageNumber()); assertEquals(1, pageRequest.getPageSize()); assertEquals("id: ASC", pageRequest.getSort().toString()); }
reader = new RepositoryItemReader<>(); reader.setRepository(repository); reader.setPageSize(-1); reader.afterPropertiesSet(); fail(); reader = new RepositoryItemReader<>(); reader.setRepository(repository); reader.setPageSize(1); reader.afterPropertiesSet(); fail(); reader.setPageSize(1); reader.setSort(sorts); reader.afterPropertiesSet();
@Test public void testSettingCurrentItemCountExplicitly() throws Exception { reader.setCurrentItemCount(3); reader.setPageSize(2); PageRequest request = PageRequest.of(1, 2, new Sort(Direction.ASC, "id")); when(repository.findAll(request)).thenReturn(new PageImpl<>(new ArrayList<Object>() {{ add("3"); add("4"); }})); request = PageRequest.of(2, 2, new Sort(Direction.ASC, "id")); when(repository.findAll(request)).thenReturn(new PageImpl<>(new ArrayList<Object>(){{ add("5"); add("6"); }})); reader.open(new ExecutionContext()); Object result = reader.read(); assertEquals("3", result); assertEquals("4", reader.read()); assertEquals("5", reader.read()); assertEquals("6", reader.read()); }
@Test public void testResetOfPage() throws Exception { reader.setPageSize(2); PageRequest request = PageRequest.of(0, 2, new Sort(Direction.ASC, "id")); when(repository.findAll(request)).thenReturn(new PageImpl<>(new ArrayList<Object>(){{ add("1"); add("2"); }})); request = PageRequest.of(1, 2, new Sort(Direction.ASC, "id")); when(repository.findAll(request)).thenReturn(new PageImpl<>(new ArrayList<Object>() {{ add("3"); add("4"); }})); ExecutionContext executionContext = new ExecutionContext(); reader.open(executionContext); Object result = reader.read(); reader.close(); assertEquals("1", result); reader.open(executionContext); assertEquals("1", reader.read()); assertEquals("2", reader.read()); assertEquals("3", reader.read()); }
@Test public void testSettingCurrentItemCountRestart() throws Exception { reader.setCurrentItemCount(3); reader.setPageSize(2); PageRequest request = PageRequest.of(1, 2, new Sort(Direction.ASC, "id")); when(repository.findAll(request)).thenReturn(new PageImpl<>(new ArrayList<Object>(){{ add("3"); add("4"); }})); request = PageRequest.of(2, 2, new Sort(Direction.ASC, "id")); when(repository.findAll(request)).thenReturn(new PageImpl<>(new ArrayList<Object>() {{ add("5"); add("6"); }})); ExecutionContext executionContext = new ExecutionContext(); reader.open(executionContext); Object result = reader.read(); reader.update(executionContext); reader.close(); assertEquals("3", result); reader.open(executionContext); assertEquals("4", reader.read()); assertEquals("5", reader.read()); assertEquals("6", reader.read()); }
reader.setRepository(this.repository); reader.setMethodName(this.methodName); reader.setPageSize(this.pageSize); reader.setCurrentItemCount(this.currentItemCount); reader.setMaxItemCount(this.maxItemCount);