package com.workshare.msnos.soup.threading;
import static org.junit.Assert.assertTrue;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Future;
import org.junit.Test;
public class ExecutorServicesTest {
@Test
public void shouldFixedThreadPoolCreateDaemonThreads() throws Exception {
assertDaemonThreads(ExecutorServices.newFixedDaemonThreadPool(1));
}
@Test
public void shouldCachedThreadPoolCreateDaemonThreads() throws Exception {
assertDaemonThreads(ExecutorServices.newCachedDaemonThreadPool());
}
private void assertDaemonThreads(final ExecutorService pool) throws InterruptedException, ExecutionException {
Future<Boolean> daemon = pool.submit(new Callable<Boolean>(){
@Override
public Boolean call() throws Exception {
return Thread.currentThread().isDaemon();
}});
assertTrue(daemon.get());
}
}