forked from Archives/Athou_commafeed
Remove HttpSession dependency in UserService phase 1 complete
This commit is contained in:
@@ -60,17 +60,6 @@ public class UserService {
|
|||||||
return Optional.absent();
|
return Optional.absent();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* try to log in with given credentials and create a session for the user
|
|
||||||
*/
|
|
||||||
public Optional<User> login(String nameOrEmail, String password, HttpSession sessionToFill) {
|
|
||||||
Optional<User> user = login(nameOrEmail, password);
|
|
||||||
if (user.isPresent()) {
|
|
||||||
sessionToFill.setAttribute(UserREST.SESSION_KEY_USER, user.get());
|
|
||||||
}
|
|
||||||
return user;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* try to log in by checking if the user has an active session
|
* try to log in by checking if the user has an active session
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -226,8 +226,9 @@ public class UserREST {
|
|||||||
@ApiOperation(value = "Register a new account")
|
@ApiOperation(value = "Register a new account")
|
||||||
public Response register(@Valid @ApiParam(required = true) RegistrationRequest req, @Session HttpSession session) {
|
public Response register(@Valid @ApiParam(required = true) RegistrationRequest req, @Session HttpSession session) {
|
||||||
try {
|
try {
|
||||||
userService.register(req.getName(), req.getPassword(), req.getEmail(), Arrays.asList(Role.USER));
|
User registeredUser = userService.register(req.getName(), req.getPassword(), req.getEmail(), Arrays.asList(Role.USER));
|
||||||
userService.login(req.getName(), req.getPassword(), session);
|
userService.login(req.getName(), req.getPassword());
|
||||||
|
session.setAttribute(SESSION_KEY_USER, registeredUser);
|
||||||
return Response.ok().build();
|
return Response.ok().build();
|
||||||
} catch (final IllegalArgumentException e) {
|
} catch (final IllegalArgumentException e) {
|
||||||
return Response.status(422).entity(new ValidationErrorMessage(Collections.<ConstraintViolation<?>> emptySet()) {
|
return Response.status(422).entity(new ValidationErrorMessage(Collections.<ConstraintViolation<?>> emptySet()) {
|
||||||
|
|||||||
@@ -1,17 +1,25 @@
|
|||||||
package com.commafeed.frontend.resource;
|
package com.commafeed.frontend.resource;
|
||||||
|
|
||||||
|
import static org.mockito.Matchers.any;
|
||||||
|
import static org.mockito.Mockito.inOrder;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.verifyZeroInteractions;
|
import static org.mockito.Mockito.verifyZeroInteractions;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
import javax.servlet.http.HttpSession;
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
import org.mockito.InOrder;
|
||||||
|
import org.mockito.Matchers;
|
||||||
|
|
||||||
import com.commafeed.backend.model.User;
|
import com.commafeed.backend.model.User;
|
||||||
|
import com.commafeed.backend.model.UserRole.Role;
|
||||||
import com.commafeed.backend.service.UserService;
|
import com.commafeed.backend.service.UserService;
|
||||||
import com.commafeed.frontend.model.request.LoginRequest;
|
import com.commafeed.frontend.model.request.LoginRequest;
|
||||||
|
import com.commafeed.frontend.model.request.RegistrationRequest;
|
||||||
import com.google.common.base.Optional;
|
import com.google.common.base.Optional;
|
||||||
|
|
||||||
public class UserRestTest {
|
public class UserRestTest {
|
||||||
@@ -42,7 +50,7 @@ public class UserRestTest {
|
|||||||
// Create a user
|
// Create a user
|
||||||
User user = new User();
|
User user = new User();
|
||||||
|
|
||||||
// Create UserService partial mock
|
// Create UserService mock
|
||||||
UserService service = mock(UserService.class);
|
UserService service = mock(UserService.class);
|
||||||
when(service.login("user", "password")).thenReturn(Optional.of(user));
|
when(service.login("user", "password")).thenReturn(Optional.of(user));
|
||||||
|
|
||||||
@@ -55,7 +63,51 @@ public class UserRestTest {
|
|||||||
|
|
||||||
userREST.login(req, session);
|
userREST.login(req, session);
|
||||||
|
|
||||||
verify(session).setAttribute("user", user);
|
verify(session).setAttribute(UserREST.SESSION_KEY_USER, user);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test public void
|
||||||
|
register_should_register_and_then_login() {
|
||||||
|
// Create UserService mock
|
||||||
|
UserService service = mock(UserService.class);
|
||||||
|
|
||||||
|
RegistrationRequest req = new RegistrationRequest();
|
||||||
|
req.setName("user");
|
||||||
|
req.setPassword("password");
|
||||||
|
req.setEmail("test@test.com");
|
||||||
|
|
||||||
|
HttpSession session = mock(HttpSession.class);
|
||||||
|
|
||||||
|
InOrder inOrder = inOrder(service);
|
||||||
|
|
||||||
|
UserREST userREST = new UserREST(null, null, null, service, null, null, null);
|
||||||
|
userREST.register(req, session);
|
||||||
|
|
||||||
|
inOrder.verify(service).register("user", "password", "test@test.com", Arrays.asList(Role.USER));
|
||||||
|
inOrder.verify(service).login("user", "password");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test public void
|
||||||
|
register_should_populate_http_session() {
|
||||||
|
// Create a user
|
||||||
|
User user = new User();
|
||||||
|
|
||||||
|
// Create UserService partial mock
|
||||||
|
UserService service = mock(UserService.class);
|
||||||
|
when(service.register(any(String.class), any(String.class), any(String.class), Matchers.anyListOf(Role.class))).thenReturn(user);
|
||||||
|
when(service.login(any(String.class), any(String.class))).thenReturn(Optional.of(user));
|
||||||
|
|
||||||
|
RegistrationRequest req = new RegistrationRequest();
|
||||||
|
req.setName("user");
|
||||||
|
req.setPassword("password");
|
||||||
|
req.setEmail("test@test.com");
|
||||||
|
|
||||||
|
HttpSession session = mock(HttpSession.class);
|
||||||
|
|
||||||
|
UserREST userREST = new UserREST(null, null, null, service, null, null, null);
|
||||||
|
userREST.register(req, session);
|
||||||
|
|
||||||
|
verify(session).setAttribute(UserREST.SESSION_KEY_USER, user);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user