/** * Validates and builds a {@link GemfireItemWriter}. * * @return a {@link GemfireItemWriter} */ public GemfireItemWriter<K, V> build() { Assert.notNull(this.template, "template is required."); Assert.notNull(this.itemKeyMapper, "itemKeyMapper is required."); GemfireItemWriter<K, V> writer = new GemfireItemWriter<>(); writer.setTemplate(this.template); writer.setItemKeyMapper(this.itemKeyMapper); writer.setDelete(this.delete); return writer; } }
@Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); writer = new GemfireItemWriter<>(); writer.setTemplate(template); writer.setItemKeyMapper(new SpELItemKeyMapper<>("bar.val")); writer.afterPropertiesSet(); }
@Test public void testWriteWithCustomItemKeyMapper() throws Exception { List<Foo> items = new ArrayList<Foo>() { { add(new Foo(new Bar("val1"))); add(new Foo(new Bar("val2"))); } }; writer = new GemfireItemWriter<>(); writer.setTemplate(template); writer.setItemKeyMapper(new Converter<Foo, String>() { @Override public String convert(Foo item) { String index = item.bar.val.replaceAll("val", ""); return "item" + index; } }); writer.afterPropertiesSet(); writer.write(items); verify(template).put("item1", items.get(0)); verify(template).put("item2", items.get(1)); }
@Test public void testAfterPropertiesSet() throws Exception { writer = new GemfireItemWriter<>(); try { writer.afterPropertiesSet(); fail("Expected exception was not thrown"); } catch (IllegalArgumentException iae) { } writer.setTemplate(template); try { writer.afterPropertiesSet(); fail("Expected exception was not thrown"); } catch (IllegalArgumentException iae) { } writer.setItemKeyMapper(new SpELItemKeyMapper<>("foo")); writer.afterPropertiesSet(); }
/** * Validates and builds a {@link GemfireItemWriter}. * * @return a {@link GemfireItemWriter} */ public GemfireItemWriter<K, V> build() { Assert.notNull(this.template, "template is required."); Assert.notNull(this.itemKeyMapper, "itemKeyMapper is required."); GemfireItemWriter<K, V> writer = new GemfireItemWriter<>(); writer.setTemplate(this.template); writer.setItemKeyMapper(this.itemKeyMapper); writer.setDelete(this.delete); return writer; } }