1 package com.atlassian.sal.core.executor;
2
3 import junit.framework.TestCase;
4
5 import java.util.concurrent.Executors;
6 import java.util.concurrent.ExecutorService;
7 import java.util.concurrent.Callable;
8 import java.util.concurrent.Executor;
9 import java.util.Arrays;
10
11 public class TestThreadLocalDelegateExecutor extends TestCase
12 {
13 public void testRun() throws InterruptedException
14 {
15 final ThreadLocalContextManager manager = new StubThreadLocalContextManager();
16 Runnable delegate = new Runnable()
17 {
18 public void run()
19 {
20 assertNotNull(manager.getThreadLocalContext());
21 }
22 };
23
24 manager.setThreadLocalContext(new Object());
25 Executor executor = new ThreadLocalDelegateExecutor(manager, Executors.newSingleThreadExecutor());
26 executor.execute(delegate);
27 Thread.sleep(1000);
28 assertNotNull(manager.getThreadLocalContext());
29 }
30 }