Commit 2afad654f72b977162e43ad69e80fa006d9db1ad
1 parent
0399d385
deal with userForm
Showing
6 changed files
with
54 additions
and
47 deletions
Show diff stats
src/main/java/fr/plil/sio/web/mvc/NewUserController.java
@@ -2,6 +2,7 @@ package fr.plil.sio.web.mvc; | @@ -2,6 +2,7 @@ package fr.plil.sio.web.mvc; | ||
2 | 2 | ||
3 | import org.springframework.stereotype.Controller; | 3 | import org.springframework.stereotype.Controller; |
4 | import org.springframework.validation.BindingResult; | 4 | import org.springframework.validation.BindingResult; |
5 | +import org.springframework.web.bind.annotation.ModelAttribute; | ||
5 | import org.springframework.web.bind.annotation.RequestMapping; | 6 | import org.springframework.web.bind.annotation.RequestMapping; |
6 | import org.springframework.web.bind.annotation.RequestMethod; | 7 | import org.springframework.web.bind.annotation.RequestMethod; |
7 | import org.springframework.web.servlet.ModelAndView; | 8 | import org.springframework.web.servlet.ModelAndView; |
@@ -15,6 +16,9 @@ public class NewUserController { | @@ -15,6 +16,9 @@ public class NewUserController { | ||
15 | private UserRepository userRepository; | 16 | private UserRepository userRepository; |
16 | 17 | ||
17 | @Resource | 18 | @Resource |
19 | + private UserService userService; | ||
20 | + | ||
21 | + @Resource | ||
18 | private UserSession userSession; | 22 | private UserSession userSession; |
19 | 23 | ||
20 | @Resource | 24 | @Resource |
@@ -26,7 +30,8 @@ public class NewUserController { | @@ -26,7 +30,8 @@ public class NewUserController { | ||
26 | } | 30 | } |
27 | 31 | ||
28 | @RequestMapping(value = {"/newUser"}, method = RequestMethod.POST) | 32 | @RequestMapping(value = {"/newUser"}, method = RequestMethod.POST) |
29 | - public String postNewUser(User user, BindingResult result) { | 33 | + public String postNewUser(@ModelAttribute("userForm") UserForm user, |
34 | + BindingResult result) { | ||
30 | 35 | ||
31 | if (!userSession.getUsername().equals("admin")) { | 36 | if (!userSession.getUsername().equals("admin")) { |
32 | result.rejectValue("username", "new.user.only.admin"); | 37 | result.rejectValue("username", "new.user.only.admin"); |
@@ -44,7 +49,7 @@ public class NewUserController { | @@ -44,7 +49,7 @@ public class NewUserController { | ||
44 | return "newUser"; | 49 | return "newUser"; |
45 | } | 50 | } |
46 | 51 | ||
47 | - userRepository.save(user); | 52 | + userService.createUser(user.getUsername(), user.getPassword()); |
48 | 53 | ||
49 | return "redirect:/"; | 54 | return "redirect:/"; |
50 | } | 55 | } |
@@ -60,4 +65,8 @@ public class NewUserController { | @@ -60,4 +65,8 @@ public class NewUserController { | ||
60 | public void setUserFormValidator(UserFormValidator userFormValidator) { | 65 | public void setUserFormValidator(UserFormValidator userFormValidator) { |
61 | this.userFormValidator = userFormValidator; | 66 | this.userFormValidator = userFormValidator; |
62 | } | 67 | } |
68 | + | ||
69 | + public void setUserService(UserService userService) { | ||
70 | + this.userService = userService; | ||
71 | + } | ||
63 | } | 72 | } |
src/main/java/fr/plil/sio/web/mvc/User.java
@@ -39,23 +39,4 @@ public class User { | @@ -39,23 +39,4 @@ public class User { | ||
39 | public void setPassword(String password) { | 39 | public void setPassword(String password) { |
40 | this.password = password; | 40 | this.password = password; |
41 | } | 41 | } |
42 | - | ||
43 | - @Override | ||
44 | - public boolean equals(Object obj) { | ||
45 | - if (obj == null) { | ||
46 | - return false; | ||
47 | - } | ||
48 | - if (getClass() != obj.getClass()) { | ||
49 | - return false; | ||
50 | - } | ||
51 | - final User other = (User) obj; | ||
52 | - return !((this.username == null) ? (other.username != null) : !this.username.equals(other.username)); | ||
53 | - } | ||
54 | - | ||
55 | - @Override | ||
56 | - public int hashCode() { | ||
57 | - int hash = 7; | ||
58 | - hash = 29 * hash + (this.username != null ? this.username.hashCode() : 0); | ||
59 | - return hash; | ||
60 | - } | ||
61 | } | 42 | } |
src/main/java/fr/plil/sio/web/mvc/UserServiceImpl.java
0 → 100644
@@ -0,0 +1,23 @@ | @@ -0,0 +1,23 @@ | ||
1 | +package fr.plil.sio.web.mvc; | ||
2 | + | ||
3 | +import org.springframework.stereotype.Service; | ||
4 | +import org.springframework.transaction.annotation.Transactional; | ||
5 | + | ||
6 | +import javax.annotation.Resource; | ||
7 | + | ||
8 | +@Service("userService") | ||
9 | +public class UserServiceImpl implements UserService { | ||
10 | + | ||
11 | + @Resource | ||
12 | + private UserRepository userRepository; | ||
13 | + | ||
14 | + @Override | ||
15 | + @Transactional | ||
16 | + public User createUser(String username, String password) { | ||
17 | + User user = new User(); | ||
18 | + user.setUsername(username); | ||
19 | + user.setPassword(password); | ||
20 | + userRepository.save(user); | ||
21 | + return user; | ||
22 | + } | ||
23 | +} |
src/test/java/fr/plil/sio/web/mvc/NewUserControllerTest.java
@@ -7,29 +7,29 @@ import org.springframework.validation.BindingResult; | @@ -7,29 +7,29 @@ import org.springframework.validation.BindingResult; | ||
7 | import org.springframework.web.servlet.ModelAndView; | 7 | import org.springframework.web.servlet.ModelAndView; |
8 | 8 | ||
9 | import static org.junit.Assert.*; | 9 | import static org.junit.Assert.*; |
10 | -import static org.mockito.Mockito.mock; | ||
11 | -import static org.mockito.Mockito.when; | 10 | +import static org.mockito.Mockito.*; |
12 | 11 | ||
13 | public class NewUserControllerTest { | 12 | public class NewUserControllerTest { |
14 | 13 | ||
15 | private NewUserController newUserController; | 14 | private NewUserController newUserController; |
16 | private BindingResult results; | 15 | private BindingResult results; |
17 | - private User user; | 16 | + private UserForm user; |
18 | private UserRepository userRepository; | 17 | private UserRepository userRepository; |
19 | private UserSession userSession; | 18 | private UserSession userSession; |
20 | private UserFormValidator userFormValidator; | 19 | private UserFormValidator userFormValidator; |
20 | + private UserService userService; | ||
21 | 21 | ||
22 | @Before | 22 | @Before |
23 | public void createInstances() { | 23 | public void createInstances() { |
24 | newUserController = new NewUserController(); | 24 | newUserController = new NewUserController(); |
25 | - user = new User(); | 25 | + user = new UserForm(); |
26 | results = new BeanPropertyBindingResult(user, "user"); | 26 | results = new BeanPropertyBindingResult(user, "user"); |
27 | userRepository = mock(UserRepository.class); | 27 | userRepository = mock(UserRepository.class); |
28 | - | ||
29 | User user = new User("admin", "password"); | 28 | User user = new User("admin", "password"); |
30 | when(userRepository.findByUsername("admin")).thenReturn(user); | 29 | when(userRepository.findByUsername("admin")).thenReturn(user); |
31 | - | ||
32 | newUserController.setUserRepository(userRepository); | 30 | newUserController.setUserRepository(userRepository); |
31 | + userService = mock(UserService.class); | ||
32 | + newUserController.setUserService(userService); | ||
33 | userSession = new UserSession(); | 33 | userSession = new UserSession(); |
34 | userSession.setUsername("admin"); | 34 | userSession.setUsername("admin"); |
35 | newUserController.setUserSession(userSession); | 35 | newUserController.setUserSession(userSession); |
@@ -49,16 +49,17 @@ public class NewUserControllerTest { | @@ -49,16 +49,17 @@ public class NewUserControllerTest { | ||
49 | @Test | 49 | @Test |
50 | public void testPostNewUserSucceed() { | 50 | public void testPostNewUserSucceed() { |
51 | user.setUsername("abc"); | 51 | user.setUsername("abc"); |
52 | - user.setPassword("abc"); | 52 | + user.setPassword("abcD#"); |
53 | String view = newUserController.postNewUser(user, results); | 53 | String view = newUserController.postNewUser(user, results); |
54 | assertFalse(results.hasErrors()); | 54 | assertFalse(results.hasErrors()); |
55 | - assertEquals("redirect:/",view); | 55 | + assertEquals("redirect:/", view); |
56 | + verify(userService).createUser("abc", "abcD#"); | ||
56 | } | 57 | } |
57 | 58 | ||
58 | @Test | 59 | @Test |
59 | public void testPostNewUserFailedNotAdmin() { | 60 | public void testPostNewUserFailedNotAdmin() { |
60 | user.setUsername("abc"); | 61 | user.setUsername("abc"); |
61 | - user.setPassword("abc"); | 62 | + user.setPassword("abcD#"); |
62 | userSession.setUsername("blabla"); | 63 | userSession.setUsername("blabla"); |
63 | String view = newUserController.postNewUser(user, results); | 64 | String view = newUserController.postNewUser(user, results); |
64 | assertTrue(results.hasErrors()); | 65 | assertTrue(results.hasErrors()); |
src/test/java/fr/plil/sio/web/mvc/UserFormValidatorTest.java
@@ -10,22 +10,22 @@ import static org.junit.Assert.assertTrue; | @@ -10,22 +10,22 @@ import static org.junit.Assert.assertTrue; | ||
10 | 10 | ||
11 | public class UserFormValidatorTest { | 11 | public class UserFormValidatorTest { |
12 | 12 | ||
13 | - private User user; | 13 | + private UserForm user; |
14 | private UserFormValidator validator; | 14 | private UserFormValidator validator; |
15 | private Errors results; | 15 | private Errors results; |
16 | 16 | ||
17 | @Before | 17 | @Before |
18 | public void createInstances() { | 18 | public void createInstances() { |
19 | validator = new UserFormValidator(); | 19 | validator = new UserFormValidator(); |
20 | - user = new User(); | 20 | + user = new UserForm(); |
21 | user.setUsername("abc"); | 21 | user.setUsername("abc"); |
22 | - user.setPassword("abc"); | 22 | + user.setPassword("abc#A"); |
23 | results = new BeanPropertyBindingResult(user, "user"); | 23 | results = new BeanPropertyBindingResult(user, "user"); |
24 | } | 24 | } |
25 | 25 | ||
26 | @Test | 26 | @Test |
27 | public void testSupports() { | 27 | public void testSupports() { |
28 | - assertTrue(validator.supports(User.class)); | 28 | + assertTrue(validator.supports(UserForm.class)); |
29 | } | 29 | } |
30 | 30 | ||
31 | @Test | 31 | @Test |
@@ -34,17 +34,4 @@ public class UserFormValidatorTest { | @@ -34,17 +34,4 @@ public class UserFormValidatorTest { | ||
34 | assertFalse(results.hasErrors()); | 34 | assertFalse(results.hasErrors()); |
35 | } | 35 | } |
36 | 36 | ||
37 | - @Test | ||
38 | - public void testValidatePasswordTooShort() { | ||
39 | - user.setPassword("ab"); | ||
40 | - validator.validate(user,results); | ||
41 | - assertTrue(results.hasErrors()); | ||
42 | - } | ||
43 | - | ||
44 | - @Test | ||
45 | - public void testValidateUsernameTooShort() { | ||
46 | - user.setUsername("ab"); | ||
47 | - validator.validate(user,results); | ||
48 | - assertTrue(results.hasErrors()); | ||
49 | - } | ||
50 | } | 37 | } |