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 | 2 | |
3 | 3 | import org.springframework.stereotype.Controller; |
4 | 4 | import org.springframework.validation.BindingResult; |
5 | +import org.springframework.web.bind.annotation.ModelAttribute; | |
5 | 6 | import org.springframework.web.bind.annotation.RequestMapping; |
6 | 7 | import org.springframework.web.bind.annotation.RequestMethod; |
7 | 8 | import org.springframework.web.servlet.ModelAndView; |
... | ... | @@ -15,6 +16,9 @@ public class NewUserController { |
15 | 16 | private UserRepository userRepository; |
16 | 17 | |
17 | 18 | @Resource |
19 | + private UserService userService; | |
20 | + | |
21 | + @Resource | |
18 | 22 | private UserSession userSession; |
19 | 23 | |
20 | 24 | @Resource |
... | ... | @@ -26,7 +30,8 @@ public class NewUserController { |
26 | 30 | } |
27 | 31 | |
28 | 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 | 36 | if (!userSession.getUsername().equals("admin")) { |
32 | 37 | result.rejectValue("username", "new.user.only.admin"); |
... | ... | @@ -44,7 +49,7 @@ public class NewUserController { |
44 | 49 | return "newUser"; |
45 | 50 | } |
46 | 51 | |
47 | - userRepository.save(user); | |
52 | + userService.createUser(user.getUsername(), user.getPassword()); | |
48 | 53 | |
49 | 54 | return "redirect:/"; |
50 | 55 | } |
... | ... | @@ -60,4 +65,8 @@ public class NewUserController { |
60 | 65 | public void setUserFormValidator(UserFormValidator userFormValidator) { |
61 | 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 | 39 | public void setPassword(String password) { |
40 | 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/UserService.java
0 โ 100644
src/main/java/fr/plil/sio/web/mvc/UserServiceImpl.java
0 โ 100644
... | ... | @@ -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 | 7 | import org.springframework.web.servlet.ModelAndView; |
8 | 8 | |
9 | 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 | 12 | public class NewUserControllerTest { |
14 | 13 | |
15 | 14 | private NewUserController newUserController; |
16 | 15 | private BindingResult results; |
17 | - private User user; | |
16 | + private UserForm user; | |
18 | 17 | private UserRepository userRepository; |
19 | 18 | private UserSession userSession; |
20 | 19 | private UserFormValidator userFormValidator; |
20 | + private UserService userService; | |
21 | 21 | |
22 | 22 | @Before |
23 | 23 | public void createInstances() { |
24 | 24 | newUserController = new NewUserController(); |
25 | - user = new User(); | |
25 | + user = new UserForm(); | |
26 | 26 | results = new BeanPropertyBindingResult(user, "user"); |
27 | 27 | userRepository = mock(UserRepository.class); |
28 | - | |
29 | 28 | User user = new User("admin", "password"); |
30 | 29 | when(userRepository.findByUsername("admin")).thenReturn(user); |
31 | - | |
32 | 30 | newUserController.setUserRepository(userRepository); |
31 | + userService = mock(UserService.class); | |
32 | + newUserController.setUserService(userService); | |
33 | 33 | userSession = new UserSession(); |
34 | 34 | userSession.setUsername("admin"); |
35 | 35 | newUserController.setUserSession(userSession); |
... | ... | @@ -49,16 +49,17 @@ public class NewUserControllerTest { |
49 | 49 | @Test |
50 | 50 | public void testPostNewUserSucceed() { |
51 | 51 | user.setUsername("abc"); |
52 | - user.setPassword("abc"); | |
52 | + user.setPassword("abcD#"); | |
53 | 53 | String view = newUserController.postNewUser(user, results); |
54 | 54 | assertFalse(results.hasErrors()); |
55 | - assertEquals("redirect:/",view); | |
55 | + assertEquals("redirect:/", view); | |
56 | + verify(userService).createUser("abc", "abcD#"); | |
56 | 57 | } |
57 | 58 | |
58 | 59 | @Test |
59 | 60 | public void testPostNewUserFailedNotAdmin() { |
60 | 61 | user.setUsername("abc"); |
61 | - user.setPassword("abc"); | |
62 | + user.setPassword("abcD#"); | |
62 | 63 | userSession.setUsername("blabla"); |
63 | 64 | String view = newUserController.postNewUser(user, results); |
64 | 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 | 10 | |
11 | 11 | public class UserFormValidatorTest { |
12 | 12 | |
13 | - private User user; | |
13 | + private UserForm user; | |
14 | 14 | private UserFormValidator validator; |
15 | 15 | private Errors results; |
16 | 16 | |
17 | 17 | @Before |
18 | 18 | public void createInstances() { |
19 | 19 | validator = new UserFormValidator(); |
20 | - user = new User(); | |
20 | + user = new UserForm(); | |
21 | 21 | user.setUsername("abc"); |
22 | - user.setPassword("abc"); | |
22 | + user.setPassword("abc#A"); | |
23 | 23 | results = new BeanPropertyBindingResult(user, "user"); |
24 | 24 | } |
25 | 25 | |
26 | 26 | @Test |
27 | 27 | public void testSupports() { |
28 | - assertTrue(validator.supports(User.class)); | |
28 | + assertTrue(validator.supports(UserForm.class)); | |
29 | 29 | } |
30 | 30 | |
31 | 31 | @Test |
... | ... | @@ -34,17 +34,4 @@ public class UserFormValidatorTest { |
34 | 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 | } | ... | ... |