Skip to content

Commit ad3f69a

Browse files
committed
Add temp solution to have more test data
1 parent cd4c7b6 commit ad3f69a

File tree

4 files changed

+64
-21
lines changed

4 files changed

+64
-21
lines changed

src/main/java/springAngularApp/system/ws/InitDBController.java

Lines changed: 39 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package springAngularApp.system.ws;
22

3+
import org.hibernate.SessionFactory;
34
import org.springframework.beans.factory.annotation.Autowired;
45
import org.springframework.http.ResponseEntity;
56
import org.springframework.security.crypto.password.PasswordEncoder;
@@ -13,27 +14,36 @@
1314
import springAngularApp.users.domain.repositories.UserGroupRepository;
1415
import springAngularApp.users.domain.repositories.UserRepository;
1516

17+
import java.io.File;
18+
import java.io.IOException;
19+
20+
import static com.google.common.collect.Lists.newArrayList;
21+
import static com.google.common.io.Files.readLines;
22+
import static java.nio.charset.Charset.defaultCharset;
1623
import static org.springframework.http.HttpStatus.OK;
1724
import static springAngularApp.users.domain.entities.UserAuthorities.*;
18-
import static springAngularApp.users.domain.entities.UserAuthorities.ROLE_USER_GROUP_VIEW;
1925

2026
/**
2127
* TODO Delete me
2228
*/
2329
@RestController
30+
@SuppressWarnings("all")
2431
public class InitDBController {
2532

2633
@Autowired private UserAuthorityRepository userAuthorityRepository;
2734
@Autowired private UserGroupRepository userGroupRepository;
2835
@Autowired private UserRepository userRepository;
2936
@Autowired private PasswordEncoder passwordEncoder;
37+
@Autowired private SessionFactory sessionFactory;
3038

3139
@Transactional
3240
@RequestMapping(value = "/initDB")
33-
public ResponseEntity init() {
34-
userRepository.deleteAll();
35-
userGroupRepository.deleteAll();
36-
userAuthorityRepository.deleteAll();
41+
public ResponseEntity init() throws IOException {
42+
sessionFactory.getCurrentSession().createQuery("DELETE FROM User").executeUpdate();
43+
sessionFactory.getCurrentSession().createQuery("DELETE FROM UserGroup").executeUpdate();
44+
sessionFactory.getCurrentSession().createQuery("DELETE FROM UserAuthority").executeUpdate();
45+
sessionFactory.getCurrentSession().flush();
46+
sessionFactory.getCurrentSession().clear();
3747

3848
UserGroup adminGroup = new UserGroup("Administrator");
3949
adminGroup.setSuperUserGroup(true);
@@ -65,23 +75,32 @@ public ResponseEntity init() {
6575
admin.setFirstName("Bob");
6676
admin.setLastName("Smith");
6777

68-
User user = new User("user", password, defaultUserGroup);
69-
admin.setFirstName("Adam");
70-
admin.setLastName("Hansen");
71-
72-
userAuthorityRepository.save(roleDefault);
73-
userAuthorityRepository.save(roleUserEdit);
74-
userAuthorityRepository.save(roleUserView);
75-
userAuthorityRepository.save(roleUserDelete);
76-
userAuthorityRepository.save(roleConfigurationView);
77-
userAuthorityRepository.save(roleUserGroupEdit);
78-
userAuthorityRepository.save(roleUserGroupView);
79-
userAuthorityRepository.save(roleUserGroupDelete);
80-
userGroupRepository.save(adminGroup);
81-
userGroupRepository.save(defaultUserGroup);
78+
userAuthorityRepository.save(
79+
newArrayList(
80+
roleDefault,
81+
roleUserEdit,
82+
roleUserView,
83+
roleUserDelete,
84+
roleConfigurationView,
85+
roleUserGroupEdit,
86+
roleUserGroupView,
87+
roleUserGroupDelete
88+
));
89+
userGroupRepository.save(newArrayList(adminGroup, defaultUserGroup));
8290
userRepository.save(admin);
83-
userRepository.save(user);
91+
generateAdditionalUsers(adminGroup, password);
8492
return new ResponseEntity(OK);
8593
}
8694

95+
private void generateAdditionalUsers(UserGroup adminGroup, String password) throws IOException {
96+
File fileWithNames = new File(getClass().getClassLoader().getResource("utils/names.txt").getFile());
97+
readLines(fileWithNames, defaultCharset()).forEach(name -> {
98+
String[] nameParts = name.split(" ");
99+
User user = new User(nameParts[0] + nameParts[1], password, adminGroup);
100+
user.setFirstName(nameParts[0]);
101+
user.setLastName(nameParts[1]);
102+
userRepository.save(user);
103+
});
104+
}
105+
87106
}

src/main/java/springAngularApp/users/domain/entities/UserGroup.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,9 @@ public boolean isSuperUserGroup() {
5454
return superUserGroup;
5555
}
5656

57-
public void setSuperUserGroup(boolean superUserGroup) {
57+
public UserGroup setSuperUserGroup(boolean superUserGroup) {
5858
this.superUserGroup = superUserGroup;
59+
return this;
5960
}
6061

6162
public UserGroup(String name, List<UserAuthority> authorities) {

src/main/resources/utils/names.txt

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
Gaylene Furlong
2+
Georgina Ruggerio
3+
Delmy Hamburger
4+
Tam Vanduzer
5+
Savanna Rector
6+
Jacalyn Binford
7+
Madie Gilbert
8+
Kip Buckholz
9+
Tressa Raley
10+
Aisha Petties
11+
Magali Breeze
12+
Sabina Bronson
13+
Mitchel Candy
14+
Arianne Culbreath
15+
Frida Fordyce
16+
Erica Anson
17+
Livia Raposa
18+
Hermine Arnot
19+
Kenton Janelle
20+
Lamonica Mcraney

src/test/java/springAngularApp/system/ws/InitDBControllerTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package springAngularApp.system.ws;
22

3+
import org.hibernate.SessionFactory;
34
import org.junit.Before;
45
import org.junit.Test;
56
import org.junit.runner.RunWith;
@@ -14,6 +15,7 @@
1415
import springAngularApp.users.domain.repositories.UserRepository;
1516

1617
import static org.assertj.core.api.Assertions.assertThat;
18+
import static org.mockito.Answers.RETURNS_DEEP_STUBS;
1719
import static org.mockito.Matchers.anyString;
1820
import static org.mockito.Mockito.when;
1921
import static org.springframework.http.HttpStatus.OK;
@@ -27,6 +29,7 @@ public class InitDBControllerTest {
2729
@Mock private UserGroupRepository userGroupRepository;
2830
@Mock private UserRepository userRepository;
2931
@Mock private PasswordEncoder passwordEncoder;
32+
@Mock(answer = RETURNS_DEEP_STUBS) private SessionFactory sessionFactory;
3033

3134
private MockMvc mockMvc;
3235

0 commit comments

Comments
 (0)