View Javadoc
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  }