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   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  }