package egovframework.rte.bat.core.launch.support; import java.util.ArrayList; import org.junit.Test; /** * EgovSchedulerRunner Test 클래스 * @author 한성곤 * @since 2013.04.01 * @version 1.0 * @see <pre> * == 개정이력(Modification Information) == * * 수정일 수정자 수정내용 * ------- -------- --------------------------- * 2013.04.01 한성곤 최초 생성 (loop 처리에 대한 테스트) * * </pre> */ public class EgovSchedulerRunnerTest { /** * 반복되지 않는 경우 처리 * * (30초 대기 후 ApplicationContext close 처리되며, 50초 초과 시 timeout 오류 발생) */ @Test(timeout=50000) public void testNoRepeatStart() { EgovSchedulerRunner egovSchedulerRunner = new EgovSchedulerRunner( "/META-INF/spring/launch/context-scheduler.xml", "/META-INF/spring/launch/context-job.xml", new ArrayList<String>(), 30000); egovSchedulerRunner.start(); } /** * 반복처리되는 경우 * * (40초 대기 후 EgovSchedulerRunner 실행 thread를 interrupt함으로써 loop 종료 후 AplicationContext close 처리하고, 50초 초과 시 timeout 오류 발생) */ @Test(timeout=50000) public void testContinueStart() { ThreadRunner runner = new ThreadRunner(); runner.start(); try { Thread.sleep(40000); } catch (InterruptedException ie) { } runner.interrupt(); } } class ThreadRunner extends Thread { private EgovSchedulerRunner egovSchedulerRunner; public void run() { egovSchedulerRunner = new EgovSchedulerRunner( "/META-INF/spring/launch/context-scheduler.xml", "/META-INF/spring/launch/context-job.xml", new ArrayList<String>(), -30000); egovSchedulerRunner.start(); } }