package codeine.permissions; import static org.junit.Assert.*; import static org.mockito.Mockito.*; import java.security.Principal; import javax.servlet.http.HttpServletRequest; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import codeine.jsons.auth.CodeineUser; import codeine.model.Constants; import codeine.servlet.UsersManager; public class UsernameResolverFromRequestTest { @Mock private HttpServletRequest request; @Mock private UsersManager usersManager; private UsernameResolverFromRequest tested; @Before public void initMocks() { MockitoAnnotations.initMocks(this); tested = new UsernameResolverFromRequest(usersManager); } @Test public void testApiToken() { when(request.getHeader(Constants.API_TOKEN)).thenReturn("token"); CodeineUser newUser = CodeineUser.createNewUser("user", "password"); when(usersManager.userByApiToken("token")).thenReturn(newUser); CodeineUser user = tested.getUser(request); assertEquals(newUser, user); } @Test public void testGuestUser() { CodeineUser user = tested.getUser(request); assertEquals("Guest", user.username()); } @Test public void testUsernameWithShtrudel() { final String userWithDomain = "oshai@oshai"; Principal principal = new Principal() { @Override public String getName() { return userWithDomain; } }; when(request.getUserPrincipal()).thenReturn(principal); @SuppressWarnings("unused") CodeineUser user = tested.getUser(request); // assertEquals("oshai", user.username()); verify(usersManager).userOrGuest("oshai"); } }