Skip to content

Commit 5f33603

Browse files
committed
Registration fix, add user role
1 parent 332bf7d commit 5f33603

4 files changed

Lines changed: 32 additions & 3 deletions

File tree

src/main/java/alexp/blog/model/User.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public class User {
4747
@JoinTable(name = "users_roles",
4848
joinColumns = @JoinColumn(name = "user_id", referencedColumnName = "id"),
4949
inverseJoinColumns = @JoinColumn(name = "role_id", referencedColumnName = "id"))
50-
private Collection<Role> roles = new ArrayList<>();
50+
private List<Role> roles = new ArrayList<>();
5151

5252
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "user")
5353
public List<Comment> comments = new ArrayList<>();;
@@ -88,11 +88,11 @@ public boolean isEnabled() {
8888
return enabled;
8989
}
9090

91-
public Collection<Role> getRoles() {
91+
public List<Role> getRoles() {
9292
return roles;
9393
}
9494

95-
public void setRoles(Collection<Role> roles) {
95+
public void setRoles(List<Role> roles) {
9696
this.roles = roles;
9797
}
9898

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package alexp.blog.repository;
2+
3+
import alexp.blog.model.Role;
4+
import org.springframework.data.jpa.repository.JpaRepository;
5+
6+
public interface RoleRepository extends JpaRepository<Role, Long> {
7+
8+
Role findByName(String name);
9+
}

src/main/java/alexp/blog/service/UserServiceImpl.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import alexp.blog.model.Role;
44
import alexp.blog.model.User;
5+
import alexp.blog.repository.RoleRepository;
56
import alexp.blog.repository.UserRepository;
67
import org.springframework.beans.factory.annotation.Autowired;
78
import org.springframework.security.authentication.AnonymousAuthenticationToken;
@@ -25,6 +26,9 @@ public class UserServiceImpl implements UserService {
2526
@Autowired
2627
private UserRepository userRepository;
2728

29+
@Autowired
30+
private RoleRepository roleRepository;
31+
2832
@Autowired
2933
private PasswordEncoder passwordEncoder;
3034

@@ -68,6 +72,8 @@ public boolean emailExists(String email) {
6872
public void register(User user) {
6973
user.setPassword(passwordEncoder.encode(user.getPassword()));
7074

75+
user.getRoles().add(roleRepository.findByName("ROLE_USER"));
76+
7177
user.setEnabled(true);
7278

7379
userRepository.saveAndFlush(user);

src/test/java/alexp/blog/service/UserServiceTest.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import alexp.blog.model.Role;
44
import alexp.blog.model.User;
5+
import alexp.blog.repository.RoleRepository;
56
import alexp.blog.repository.UserRepository;
67
import org.junit.Before;
78
import org.junit.Test;
@@ -26,9 +27,13 @@ public class UserServiceTest {
2627

2728
public static final String NAME = "name";
2829
public static final String EMAIL = "email";
30+
2931
@Mock
3032
private UserRepository userRepository;
3133

34+
@Mock
35+
private RoleRepository roleRepository;
36+
3237
@Mock
3338
private PasswordEncoder passwordEncoder;
3439

@@ -86,13 +91,22 @@ public void shouldReturnNullWhenUsernameNotExists() {
8691

8792
@Test
8893
public void shouldAddNewUser() {
94+
Role role = new Role();
95+
96+
when(roleRepository.findByName(Matchers.anyString())).thenReturn(role);
97+
8998
User user = new User();
9099

91100
userService.register(user);
92101

93102
assertThat(user.isEnabled(), is(equalTo(true)));
94103

104+
assertThat(user.getRoles().size(), is(equalTo(1)));
105+
assertThat(user.getRoles().get(0), is(role));
106+
95107
verify(userRepository, times(1)).saveAndFlush(user);
108+
109+
verify(roleRepository, times(1)).findByName(Matchers.anyString());
96110
}
97111

98112
@Test

0 commit comments

Comments
 (0)