View Javadoc

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  }