/* * Copyright 2006-2013 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.springframework.batch.core.listener; import java.util.ArrayList; import java.util.List; import junit.framework.TestCase; import org.springframework.batch.core.ExitStatus; import org.springframework.batch.core.JobExecution; import org.springframework.batch.core.StepExecution; import org.springframework.batch.core.StepExecutionListener; /** * @author Dave Syer * */ public class CompositeStepExecutionListenerTests extends TestCase { private CompositeStepExecutionListener listener = new CompositeStepExecutionListener(); private List<String> list = new ArrayList<String>(); /** * Test method for * {@link org.springframework.batch.core.listener.CompositeStepExecutionListener#setListeners(org.springframework.batch.core.StepExecutionListener[])} * . */ public void testSetListeners() { JobExecution jobExecution = new JobExecution(1L); StepExecution stepExecution = new StepExecution("s1", jobExecution); listener.setListeners(new StepExecutionListener[] { new StepExecutionListenerSupport() { @Override public ExitStatus afterStep(StepExecution stepExecution) { assertEquals(ExitStatus.STOPPED, stepExecution.getExitStatus()); list.add("fail"); return ExitStatus.FAILED; } }, new StepExecutionListenerSupport() { @Override public ExitStatus afterStep(StepExecution stepExecution) { list.add("continue"); return ExitStatus.STOPPED; } } }); assertEquals(ExitStatus.FAILED, listener.afterStep(stepExecution)); assertEquals(2, list.size()); } /** * Test method for * {@link org.springframework.batch.core.listener.CompositeStepExecutionListener#register(org.springframework.batch.core.StepExecutionListener)} * . */ public void testSetListener() { JobExecution jobExecution = new JobExecution(1L); StepExecution stepExecution = new StepExecution("s1", jobExecution); listener.register(new StepExecutionListenerSupport() { @Override public ExitStatus afterStep(StepExecution stepExecution) { list.add("fail"); return ExitStatus.FAILED; } }); assertEquals(ExitStatus.FAILED, listener.afterStep(stepExecution)); assertEquals(1, list.size()); } /** * Test method for * {@link org.springframework.batch.core.listener.CompositeStepExecutionListener#beforeStep(StepExecution)} * . */ public void testOpen() { listener.register(new StepExecutionListenerSupport() { @Override public void beforeStep(StepExecution stepExecution) { list.add("foo"); } }); listener.beforeStep(new StepExecution("foo", null)); assertEquals(1, list.size()); } }