-
Notifications
You must be signed in to change notification settings - Fork 29
Expand file tree
/
Copy pathUsersFixture.java
More file actions
137 lines (109 loc) · 4.55 KB
/
Copy pathUsersFixture.java
File metadata and controls
137 lines (109 loc) · 4.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
package api.support.fixtures;
import static api.support.fixtures.UserExamples.basedUponBobbyBibbin;
import static api.support.fixtures.UserExamples.basedUponCharlotteBroadwell;
import static api.support.fixtures.UserExamples.basedUponDcbUser;
import static api.support.fixtures.UserExamples.basedUponGroot;
import static api.support.fixtures.UserExamples.basedUponHenryHanks;
import static api.support.fixtures.UserExamples.basedUponJames;
import static api.support.fixtures.UserExamples.basedUponJamesRodwell;
import static api.support.fixtures.UserExamples.basedUponJessicaPontefract;
import static api.support.fixtures.UserExamples.basedUponRebeccaStuart;
import static api.support.fixtures.UserExamples.basedUponStevenJones;
import static java.util.function.Function.identity;
import static org.folio.circulation.support.json.JsonPropertyFetcher.getProperty;
import java.util.function.Function;
import api.support.APITestContext;
import api.support.builders.UserBuilder;
import api.support.http.IndividualResource;
import api.support.http.ResourceClient;
import api.support.http.UserResource;
public class UsersFixture {
private final RecordCreator userRecordCreator;
private final PatronGroupsFixture patronGroupsFixture;
public UsersFixture(ResourceClient usersClient, PatronGroupsFixture patronGroupsFixture) {
this.userRecordCreator = new RecordCreator(usersClient,
user -> getProperty(user, "username"));
this.patronGroupsFixture = patronGroupsFixture;
}
public UserResource jessica() {
return createIfAbsent(basedUponJessicaPontefract()
.inGroupFor(patronGroupsFixture.regular()));
}
public UserResource groot() {
return createIfAbsent(basedUponGroot()
.inGroupFor(patronGroupsFixture.regular()));
}
public UserResource KimJames() {
return createIfAbsent(basedUponJames()
.inGroupFor(patronGroupsFixture.staff()));
}
public UserResource james() {
return createIfAbsent(basedUponJamesRodwell()
.inGroupFor(patronGroupsFixture.regular()));
}
public UserResource rebecca() {
return rebecca(identity());
}
public UserResource rebecca(Function<UserBuilder, UserBuilder> additionalConfiguration) {
return createIfAbsent(additionalConfiguration.apply(basedUponRebeccaStuart()
.inGroupFor(patronGroupsFixture.regular())));
}
public UserResource steve() {
return steve(identity());
}
public UserResource steve(Function<UserBuilder, UserBuilder> additionalConfiguration) {
return createIfAbsent(additionalConfiguration.apply(basedUponStevenJones()
.inGroupFor(patronGroupsFixture.regular())));
}
public UserResource charlotte() {
return charlotte(identity());
}
public UserResource charlotte(Function<UserBuilder, UserBuilder> additionalConfiguration) {
return createIfAbsent(additionalConfiguration.apply(basedUponCharlotteBroadwell()
.inGroupFor(patronGroupsFixture.regular())));
}
public UserResource bobby() {
return createIfAbsent(basedUponBobbyBibbin()
.inGroupFor(patronGroupsFixture.regular()));
}
public UserResource henry() {
return createIfAbsent(basedUponHenryHanks()
.inGroupFor(patronGroupsFixture.regular()));
}
public UserResource undergradHenry() {
return undergradHenry(identity());
}
public UserResource undergradHenry(Function<UserBuilder, UserBuilder> additionalConfiguration) {
return createIfAbsent(additionalConfiguration.apply(basedUponHenryHanks()
.inGroupFor(patronGroupsFixture.undergrad())));
}
public IndividualResource noUserGroupBob() {
return noUserGroupBob(identity());
}
public UserResource noUserGroupBob(Function<UserBuilder, UserBuilder> additionalConfiguration) {
return createIfAbsent(additionalConfiguration.apply(basedUponBobbyBibbin()));
}
public UserResource dcbUser() {
return dcbUser(identity());
}
public UserResource dcbUser(Function<UserBuilder, UserBuilder> additionalConfiguration) {
return createIfAbsent(additionalConfiguration.apply(basedUponDcbUser()
.inGroupFor(patronGroupsFixture.regular())));
}
public void remove(UserResource user) {
userRecordCreator.delete(user);
}
public void defaultAdmin() {
createIfAbsent(new UserBuilder()
.withName("Admin", "Admin")
.withNoBarcode()
.withId(APITestContext.getUserId()));
}
public UserResource from(UserBuilder userBuilder) {
return createIfAbsent(userBuilder
.inGroupFor(patronGroupsFixture.staff()));
}
private UserResource createIfAbsent(UserBuilder userBuilder) {
return new UserResource(userRecordCreator.createIfAbsent(userBuilder));
}
}