1 package com.atlassian.plugins.rest.common.security.jersey; 2 3 import com.atlassian.plugins.rest.common.security.AuthorisationException; 4 import com.atlassian.plugins.rest.common.security.AuthenticationRequiredException; 5 import com.atlassian.sal.api.user.UserManager; 6 import com.sun.jersey.spi.container.ContainerRequest; 7 import org.mockito.Mock; 8 import static org.mockito.Mockito.when; 9 import static org.mockito.Mockito.verify; 10 import static org.mockito.MockitoAnnotations.initMocks; 11 import org.junit.Before; 12 import org.junit.Test; 13 import static org.junit.Assert.assertSame; 14 15 public class TestSysadminOnlyResourceFilter 16 { 17 private SysadminOnlyResourceFilter sysadminOnlyResourceFilter; 18 @Mock 19 private UserManager mockUserManager; 20 @Mock 21 private ContainerRequest containerRequest; 22 23 @Before 24 public void setUp() 25 { 26 initMocks(this); 27 sysadminOnlyResourceFilter = new SysadminOnlyResourceFilter(mockUserManager); 28 } 29 30 @Test 31 public void filterPassed() 32 { 33 when(mockUserManager.getRemoteUsername()).thenReturn("dusan"); 34 when(mockUserManager.isSystemAdmin("dusan")).thenReturn(true); 35 assertSame(containerRequest, sysadminOnlyResourceFilter.getRequestFilter().filter(containerRequest)); 36 verify(mockUserManager).isSystemAdmin("dusan"); 37 } 38 39 @Test(expected = AuthenticationRequiredException.class) 40 public void filterRejectedNoLogin() 41 { 42 sysadminOnlyResourceFilter.getRequestFilter().filter(containerRequest); 43 } 44 45 46 @Test(expected = AuthorisationException.class) 47 public void filterRejectedNotAdmin() 48 { 49 when(mockUserManager.getRemoteUsername()).thenReturn("dusan"); 50 sysadminOnlyResourceFilter.getRequestFilter().filter(containerRequest); 51 verify(mockUserManager).isSystemAdmin("dusan"); 52 } 53 54 }