1 package com.atlassian.sal.core.executor;
2
3 import junit.framework.TestCase;
4
5 import java.util.concurrent.Callable;
6
7 public class TestThreadLocalDelegateCallable extends TestCase
8 {
9 public void testRun() throws InterruptedException
10 {
11 final ThreadLocalContextManager manager = new StubThreadLocalContextManager();
12 Callable delegate = new Callable()
13 {
14 public Object call()
15 {
16 assertNotNull(manager.getThreadLocalContext());
17 return null;
18 }
19 };
20
21 manager.setThreadLocalContext(new Object());
22 final Callable callable = new ThreadLocalDelegateCallable(manager, delegate);
23 Thread t = new Thread(new Runnable()
24 {
25
26 public void run()
27 {
28 try
29 {
30 callable.call();
31 }
32 catch (Exception e)
33 {
34 e.printStackTrace();
35 }
36 }
37 });
38 t.start();
39 t.join(10000);
40 assertNotNull(manager.getThreadLocalContext());
41 }
42 }