@Test public void testCollection() throws Exception { MongoItemReader<String> reader = getBasicBuilder() .parameterValues(Collections.singletonList("foo")) .jsonQuery("{ name : ?0 }") .collection("collection") .build(); ArgumentCaptor<String> collectionContainer = ArgumentCaptor.forClass(String.class); when(this.template.find(this.queryContainer.capture(), eq(String.class), collectionContainer.capture())) .thenReturn(new ArrayList<>()); assertNull("reader should not return result", reader.read()); Query query = this.queryContainer.getValue(); assertEquals("{ \"name\" : \"foo\" }", query.getQueryObject().toJson()); assertEquals("{ \"name\" : -1 }", query.getSortObject().toJson()); assertEquals("collection", collectionContainer.getValue()); }
@Test public void testVarargs() throws Exception { MongoItemReader<String> reader = getBasicBuilder() .parameterValues("foo") .jsonQuery("{ name : ?0 }") .collection("collection") .build(); ArgumentCaptor<String> collectionContainer = ArgumentCaptor.forClass(String.class); when(this.template.find(this.queryContainer.capture(), eq(String.class), collectionContainer.capture())) .thenReturn(new ArrayList<>()); assertNull("reader should not return result", reader.read()); Query query = this.queryContainer.getValue(); assertEquals("{ \"name\" : \"foo\" }", query.getQueryObject().toJson()); assertEquals("{ \"name\" : -1 }", query.getSortObject().toJson()); assertEquals("collection", collectionContainer.getValue()); }
private MongoItemReaderBuilder<String> getBasicBuilder() { return new MongoItemReaderBuilder<String>().template(this.template) .targetType(String.class) .jsonQuery("{ }") .sorts(this.sortOptions) .name("mongoReaderTest") .pageSize(50); } }
@Test public void testNullTargetType() { validateExceptionMessage(new MongoItemReaderBuilder<String>().template(this.template) .jsonQuery("{ }") .sorts(this.sortOptions) .name("mongoReaderTest") .pageSize(50), "targetType is required."); }
@Test public void testNullSorts() { validateExceptionMessage(new MongoItemReaderBuilder<String>().template(this.template) .targetType(String.class) .jsonQuery("{ }") .name("mongoReaderTest") .pageSize(50), "sorts map is required."); }
@Test public void testNullTemplate() { validateExceptionMessage(new MongoItemReaderBuilder<String>().targetType(String.class) .jsonQuery("{ }") .sorts(this.sortOptions) .name("mongoReaderTest") .pageSize(50), "template is required."); }
@Test public void testNullName() { validateExceptionMessage(new MongoItemReaderBuilder<String>().template(this.template) .targetType(String.class) .jsonQuery("{ }") .sorts(this.sortOptions) .pageSize(50), "A name is required when saveState is set to true"); }