package org.dcache.xdr;
import org.glassfish.grizzly.threadpool.ThreadPoolConfig;
import org.junit.Test;
import static org.junit.Assert.*;
public class GrizzlyUtilsTest {
@Test
public void souldSReturnDefaultValueOnZeroForSelector() {
ThreadPoolConfig tpc = GrizzlyUtils.getSelectorPoolCfg(IoStrategy.SAME_THREAD, "aService", 0);
assertTrue(tpc.getMaxPoolSize() > 0);
}
@Test
public void souldReturnMinValueIfTooSmallForSelector() {
ThreadPoolConfig tpc = GrizzlyUtils.getSelectorPoolCfg(IoStrategy.SAME_THREAD, "aService", GrizzlyUtils.MIN_SELECTORS - 1);
assertEquals("Must return minimal value", GrizzlyUtils.MIN_SELECTORS, tpc.getMaxPoolSize());
}
@Test
public void souldReturnExpectedValueForSelector() {
ThreadPoolConfig tpc = GrizzlyUtils.getSelectorPoolCfg(IoStrategy.SAME_THREAD, "aService", GrizzlyUtils.MIN_SELECTORS + 1);
assertEquals("Must return provided value", GrizzlyUtils.MIN_SELECTORS + 1, tpc.getMaxPoolSize());
}
@Test
public void souldSReturnDefaultValueOnZeroForWorker() {
ThreadPoolConfig tpc = GrizzlyUtils.getWorkerPoolCfg(IoStrategy.WORKER_THREAD, "aService", 0);
assertTrue(tpc.getMaxPoolSize() > 0);
}
@Test
public void souldReturnMinValueIfTooSmallForWorker() {
ThreadPoolConfig tpc = GrizzlyUtils.getWorkerPoolCfg(IoStrategy.WORKER_THREAD, "aService", GrizzlyUtils.MIN_WORKERS - 1);
assertEquals("Must return minimal value", GrizzlyUtils.MIN_WORKERS, tpc.getMaxPoolSize());
}
@Test
public void souldReturnExpectedValueForWorker() {
ThreadPoolConfig tpc = GrizzlyUtils.getWorkerPoolCfg(IoStrategy.WORKER_THREAD, "aService", GrizzlyUtils.MIN_WORKERS + 1);
assertEquals("Must return provided value", GrizzlyUtils.MIN_WORKERS + 1, tpc.getMaxPoolSize());
}
@Test
public void souldReturnNullIfNowWorkerThreadConfigured() {
ThreadPoolConfig tpc = GrizzlyUtils.getWorkerPoolCfg(IoStrategy.SAME_THREAD, "aService", 1);
assertNull("Must return null if no worker thread configured", tpc);
}
@Test(expected = IllegalArgumentException.class)
public void souldThrowExceptionIfNegativeSizeProvidedForWorker() {
ThreadPoolConfig tpc = GrizzlyUtils.getWorkerPoolCfg(IoStrategy.WORKER_THREAD, "aService", -1);
}
@Test(expected = IllegalArgumentException.class)
public void souldThrowExceptionIfNegativeSizeProvidedForSelector() {
ThreadPoolConfig tpc = GrizzlyUtils.getSelectorPoolCfg(IoStrategy.WORKER_THREAD, "aService", -1);
}
}