/* * Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com * The software in this package is published under the terms of the CPAL v1.0 * license, a copy of which has been included with this distribution in the * LICENSE.txt file. */ package org.mule.runtime.core.util.concurrent; import org.mule.tck.junit4.AbstractMuleTestCase; import org.mule.tck.size.SmallTest; import java.util.concurrent.TimeUnit; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @SmallTest public class NamedThreadFactoryTestCase extends AbstractMuleTestCase { protected Latch latch = new Latch(); protected String testThreadName = "myThread"; protected ClassLoader testClassLoader = new ClassLoader() {}; protected Runnable nullRunnable = new Runnable() { public void run() {} }; @Test public void testNameContextClassloader() throws InterruptedException { NamedThreadFactory threadFactory = new NamedThreadFactory(testThreadName, testClassLoader); Thread t = threadFactory.newThread(new Runnable() { public void run() { assertEquals(testThreadName + ".01", Thread.currentThread().getName()); assertEquals(testClassLoader, Thread.currentThread().getContextClassLoader()); latch.countDown(); } }); t.start(); assertTrue(latch.await(200, TimeUnit.MILLISECONDS)); } @Test public void testNameIncrement() throws InterruptedException { NamedThreadFactory threadFactory = new NamedThreadFactory(testThreadName); Thread t = threadFactory.newThread(nullRunnable); assertEquals(testThreadName + ".01", t.getName()); t = threadFactory.newThread(nullRunnable); assertEquals(testThreadName + ".02", t.getName()); t = threadFactory.newThread(nullRunnable); assertEquals(testThreadName + ".03", t.getName()); } }