View Javadoc

1   package com.atlassian.plugins.rest.common.interceptor.impl;
2   
3   import com.atlassian.plugin.AutowireCapablePlugin;
4   import com.atlassian.plugins.rest.common.interceptor.ResourceInterceptor;
5   import com.atlassian.plugins.rest.common.interceptor.impl.test.ClassResource;
6   import com.atlassian.plugins.rest.common.interceptor.impl.test.MethodResource;
7   import com.atlassian.plugins.rest.common.interceptor.impl.test.MyInterceptor;
8   import com.atlassian.plugins.rest.common.interceptor.impl.test.PackageResource;
9   import junit.framework.TestCase;
10  
11  import java.util.List;
12  
13  import static org.mockito.Mockito.mock;
14  import static org.mockito.Mockito.when;
15  
16  public class InterceptorChainBuilderTest extends TestCase
17  {
18      public void testMethodChain() throws NoSuchMethodException
19      {
20          verifyChain(MethodResource.class);
21      }
22  
23      public void testClassChain() throws NoSuchMethodException
24      {
25          verifyChain(ClassResource.class);
26      }
27  
28          public void testPackageChain() throws NoSuchMethodException
29      {
30          verifyChain(PackageResource.class);
31      }
32  
33      public void testDefaultChain() throws NoSuchMethodException
34      {
35          AutowireCapablePlugin plugin = mock(AutowireCapablePlugin.class);
36          InterceptorChainBuilder builder = new InterceptorChainBuilder(plugin);
37          List<ResourceInterceptor> interceptors = builder.getResourceInterceptorsForMethod(Object.class.getMethod("hashCode"));
38          assertNotNull(interceptors);
39          assertEquals(0, interceptors.size());
40      }
41  
42      private void verifyChain(Class resourceClass)
43              throws NoSuchMethodException
44      {
45          AutowireCapablePlugin plugin = mock(AutowireCapablePlugin.class);
46          when(plugin.autowire(MyInterceptor.class)).thenReturn(new MyInterceptor());
47          InterceptorChainBuilder builder = new InterceptorChainBuilder(plugin);
48          List<ResourceInterceptor> interceptors = builder.getResourceInterceptorsForMethod(resourceClass.getMethod("run"));
49          assertNotNull(interceptors);
50          assertEquals(1, interceptors.size());
51          assertTrue("Interceptor was " + interceptors.get(0), interceptors.get(0) instanceof MyInterceptor);
52      }
53  
54  
55  }