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 }