⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 schedulertest.java

📁 用jsp和java实现的资源管理器,很强大.
💻 JAVA
字号:
package org.tiling.scheduling.test;

import org.tiling.scheduling.Scheduler;

import junit.framework.TestCase;

public class SchedulerTest extends TestCase {

	public SchedulerTest(String name) {
		super(name);
	}

	public void testCancelScheduler() {
		Scheduler scheduler = new Scheduler();
		TestSchedulerTask task = new TestSchedulerTask(this);
		TestScheduleIterator iterator = new TestScheduleIterator();
		scheduler.schedule(task, iterator);
		waitFor(task, 2);

		scheduler.cancel();
		try {
			scheduler.schedule(new TestSchedulerTask(this), new TestScheduleIterator());
			fail("Can't schedule using a cancelled Scheduler.");
		} catch (IllegalStateException e) {
			// expected
		}
	}

	public void testCancelSchedulerTask() {
		Scheduler scheduler = new Scheduler();
		TestSchedulerTask task = new TestSchedulerTask(this);
		assertTrue("Cancel method does not prevent further executions, " + 
			"since it has not been scheduled", !task.cancel());
		task = new TestSchedulerTask(this);
		TestScheduleIterator iterator = new TestScheduleIterator();
		scheduler.schedule(task, iterator);
		waitFor(task, 2);
		
		assertTrue("Cancel method prevents further executions", task.cancel());
		try {
			scheduler.schedule(task, new TestScheduleIterator());
			fail("Can't schedule a cancelled task.");
		} catch (IllegalStateException e) {
			// expected
		}
		
		scheduler.schedule(new TestSchedulerTask(this), new TestScheduleIterator());
		waitFor(task, 2);

		scheduler.cancel();		

	}

	public void testCancelScheduleIterator() {
		Scheduler scheduler = new Scheduler();
		TestSchedulerTask task = new TestSchedulerTask(this);
		TestScheduleIterator iterator = new TestScheduleIterator(2);
		scheduler.schedule(task, iterator);
		waitFor(task, 2);
		
		try {
			scheduler.schedule(task, new TestScheduleIterator());
			fail("Can't schedule a cancelled task.");
		} catch (IllegalStateException e) {
			// expected
		}
		
		scheduler.schedule(new TestSchedulerTask(this), new TestScheduleIterator());
		waitFor(task, 2);

		scheduler.cancel();			
	}

	public void testDoubleSchedule() {
		Scheduler scheduler = new Scheduler();
		TestSchedulerTask task = new TestSchedulerTask(this);
		scheduler.schedule(task, new TestScheduleIterator());
		try {
			scheduler.schedule(task, new TestScheduleIterator());
			fail("Can't schedule a task twice.");
		} catch (IllegalStateException e) {
			// expected
		}
		scheduler.cancel();			
	}

	private void waitFor(TestSchedulerTask task, int iterations) {
		synchronized(this) {
			while (task.runCount() < iterations) {
				try {
					wait();
				} catch (InterruptedException e1) {
					return;
				}
			}
		}
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -