1 package de.dlr.shepard.integrationtests;
2
3 import de.dlr.shepard.auth.apikey.entities.ApiKey;
4 import de.dlr.shepard.auth.users.entities.User;
5 import de.dlr.shepard.auth.users.entities.UserGroup;
6 import org.eclipse.microprofile.config.ConfigProvider;
7 import org.neo4j.ogm.config.Configuration;
8 import org.neo4j.ogm.session.Session;
9 import org.neo4j.ogm.session.SessionFactory;
10
11 public class UserGroupBuilder {
12
13 private SessionFactory sessionFactory;
14
15 private Session session;
16
17 private UserGroup userGroup;
18
19 String neo4jConnectionString;
20
21 public UserGroupBuilder() {
22 String username = ConfigProvider.getConfig().getValue("neo4j.username", String.class);
23 String password = ConfigProvider.getConfig().getValue("neo4j.password", String.class);
24 String host = ConfigProvider.getConfig().getValue("neo4j.host", String.class);
25 neo4jConnectionString = "bolt://" + username + ":" + password + "@" + host;
26 session = openSession(neo4jConnectionString);
27 }
28
29 public UserGroupBuilder withUserGroup(String name) {
30 userGroup = generateUserGroup(name);
31 return this;
32 }
33
34 public UserGroup build() {
35 sessionFactory.close();
36 return userGroup;
37 }
38
39 private Session openSession(String connectionString) {
40 Configuration configuration = new Configuration.Builder().uri(connectionString).build();
41 sessionFactory = new SessionFactory(configuration, User.class.getPackageName(), ApiKey.class.getPackageName());
42 return sessionFactory.openSession();
43 }
44
45 private UserGroup generateUserGroup(String name) {
46 userGroup = new UserGroup();
47 userGroup.setName(name);
48 session.save(userGroup);
49 return userGroup;
50 }
51 }