public void testSingleOpenInterceptor() throws Exception { RepeatTemplate template = new RepeatTemplate(); final List<Object> calls = new ArrayList<>(); template.registerListener(new RepeatListenerSupport() { @Override public void open(RepeatContext context) { calls.add("1"); } }); template.iterate(new RepeatCallback() { @Override public RepeatStatus doInIteration(RepeatContext context) throws Exception { count++; context.setCompleteOnly(); return RepeatStatus.FINISHED; } }); assertEquals(1, count); assertEquals("[1]", calls.toString()); }
public void testBeforeInterceptorCanVeto() throws Exception { RepeatTemplate template = new RepeatTemplate(); final List<Object> calls = new ArrayList<>(); template.registerListener(new RepeatListenerSupport() { @Override public void before(RepeatContext context) { calls.add("1"); context.setCompleteOnly(); } }); template.iterate(new RepeatCallback() { @Override public RepeatStatus doInIteration(RepeatContext context) throws Exception { count++; return RepeatStatus.FINISHED; } }); assertEquals(0, count); // ... but the interceptor before() was called: assertEquals("[1]", calls.toString()); }