reader.setHint(this.hint); reader.setFields(this.fields); reader.setCollection(this.collection); reader.setParameterValues(this.parameterValues); reader.setQuery(this.query);
@SuppressWarnings("serial") @Test public void testQueryWithCollection() { reader.setParameterValues(new ArrayList<Object>(){{ add("foo"); }}); reader.setQuery("{ name : ?0 }"); reader.setCollection("collection"); ArgumentCaptor<Query> queryContainer = ArgumentCaptor.forClass(Query.class); ArgumentCaptor<String> collectionContainer = ArgumentCaptor.forClass(String.class); when(template.find(queryContainer.capture(), eq(String.class), collectionContainer.capture())).thenReturn(new ArrayList<>()); assertFalse(reader.doPageRead().hasNext()); Query query = queryContainer.getValue(); assertEquals(50, query.getLimit()); assertEquals(0, query.getSkip()); assertEquals("{ \"name\" : \"foo\" }", query.getQueryObject().toJson()); assertEquals("{ \"name\" : -1 }", query.getSortObject().toJson()); assertEquals("collection", collectionContainer.getValue()); }
@Test public void testQueryObjectWithCollection() throws Exception { reader = new MongoItemReader<>(); reader.setTemplate(template); Query query = new Query() .with(Sort.by(new Order(Sort.Direction.ASC, "_id"))); reader.setQuery(query); reader.setTargetType(String.class); reader.setCollection("collection"); reader.afterPropertiesSet(); ArgumentCaptor<Query> queryContainer = ArgumentCaptor.forClass(Query.class); ArgumentCaptor<String> stringContainer = ArgumentCaptor.forClass(String.class); when(template.find(queryContainer.capture(), eq(String.class), stringContainer.capture())).thenReturn(new ArrayList<>()); assertFalse(reader.doPageRead().hasNext()); Query actualQuery = queryContainer.getValue(); assertFalse(reader.doPageRead().hasNext()); assertEquals(10, actualQuery.getLimit()); assertEquals(0, actualQuery.getSkip()); assertEquals("collection", stringContainer.getValue()); } }
reader.setHint(this.hint); reader.setFields(this.fields); reader.setCollection(this.collection); reader.setParameterValues(this.parameterValues); reader.setQuery(this.query);