View Javadoc

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   
9   import static org.mockito.Mockito.when;
10  import static org.mockito.Mockito.verify;
11  import static org.mockito.MockitoAnnotations.initMocks;
12  
13  import org.junit.Before;
14  import org.junit.Test;
15  
16  import static org.junit.Assert.assertSame;
17  
18  public class TestSysadminOnlyResourceFilter {
19      private SysadminOnlyResourceFilter sysadminOnlyResourceFilter;
20      @Mock
21      private UserManager mockUserManager;
22      @Mock
23      private ContainerRequest containerRequest;
24  
25      @Before
26      public void setUp() {
27          initMocks(this);
28          sysadminOnlyResourceFilter = new SysadminOnlyResourceFilter(mockUserManager);
29      }
30  
31      @Test
32      public void filterPassed() {
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          sysadminOnlyResourceFilter.getRequestFilter().filter(containerRequest);
42      }
43  
44  
45      @Test(expected = AuthorisationException.class)
46      public void filterRejectedNotAdmin() {
47          when(mockUserManager.getRemoteUsername()).thenReturn("dusan");
48          sysadminOnlyResourceFilter.getRequestFilter().filter(containerRequest);
49          verify(mockUserManager).isSystemAdmin("dusan");
50      }
51  
52  }