package cn.org.rapid_framework.util; import java.sql.Timestamp; import org.junit.Assert; import org.junit.Test; public class LoopRunnableTest { public int count = 0; @Test public void test_all_in_one() throws InterruptedException { LoopRunnable loopRunnable = new LoopRunnable(new Runnable() { public void run() { count ++; System.out.println(new Timestamp(System.currentTimeMillis())); } }); loopRunnable.setSleepInterval(100); Thread t = new Thread(loopRunnable); Assert.assertFalse(loopRunnable.isRunning()); t.start(); Thread.sleep(1000); Assert.assertTrue(loopRunnable.isRunning()); Assert.assertFalse(loopRunnable.isPaused()); loopRunnable.pause(); int pauseBeforeCount = count; Assert.assertTrue(loopRunnable.isPaused()); Thread.sleep(1000); Assert.assertEquals(pauseBeforeCount, count); Assert.assertTrue(loopRunnable.isPaused()); loopRunnable.resume(); Assert.assertFalse(loopRunnable.isPaused()); Thread.sleep(1000); Assert.assertTrue(count > pauseBeforeCount); loopRunnable.shutdown(); Assert.assertFalse(loopRunnable.isRunning()); Thread.sleep(1000); Assert.assertFalse(t.isAlive()); } }