package net.jxta.impl.util.threads;
import junit.framework.TestCase;
public class TaskManagerTest extends TestCase {
private String oldCorePoolSize;
private String oldScheduledPoolSize;
@Override
protected void setUp() throws Exception {
oldCorePoolSize = System.getProperty(TaskManager.CORE_POOL_SIZE_SYSPROP);
oldScheduledPoolSize = System.getProperty(TaskManager.SCHEDULED_POOL_SIZE_SYSPROP);
System.clearProperty(TaskManager.CORE_POOL_SIZE_SYSPROP);
System.clearProperty(TaskManager.SCHEDULED_POOL_SIZE_SYSPROP);
}
@Override
protected void tearDown() throws Exception {
TaskManager.resetTaskManager();
setSysProp(TaskManager.CORE_POOL_SIZE_SYSPROP, oldCorePoolSize);
setSysProp(TaskManager.SCHEDULED_POOL_SIZE_SYSPROP, oldScheduledPoolSize);
}
private void setSysProp(String property, String value) {
if(value != null) {
System.setProperty(property, value);
} else {
System.clearProperty(property);
}
}
public void testDefaultCorePoolSize_forDefaultWorkType() {
assertEquals(TaskManager.DEFAULT_CORE_POOL_SIZE, TaskManager.getCorePoolSize());
}
public void testCorePoolSize_usesSysProp() {
setSysProp(TaskManager.CORE_POOL_SIZE_SYSPROP, "100");
assertEquals(100, TaskManager.getCorePoolSize());
}
public void testCorePoolSize_hasMinimum_handlesNegativeNumbers() {
setSysProp(TaskManager.CORE_POOL_SIZE_SYSPROP, "-4");
assertEquals(1, TaskManager.getCorePoolSize());
}
public void testCorePoolSize_hasMinimum_handlesZero() {
setSysProp(TaskManager.CORE_POOL_SIZE_SYSPROP, "0");
assertEquals(1, TaskManager.getCorePoolSize());
}
public void testScheduledPoolSize_usesSysProp() {
setSysProp(TaskManager.SCHEDULED_POOL_SIZE_SYSPROP, "100");
assertEquals(100, TaskManager.getScheduledPoolSize());
}
public void testScheduledPoolSize_hasMinimum_handlesNegativeNumbers() {
setSysProp(TaskManager.SCHEDULED_POOL_SIZE_SYSPROP, "-4");
assertEquals(1, TaskManager.getScheduledPoolSize());
}
public void testScheduledPoolSize_hasMinimum_handlesZero() {
setSysProp(TaskManager.SCHEDULED_POOL_SIZE_SYSPROP, "0");
assertEquals(1, TaskManager.getScheduledPoolSize());
}
}