30
30
31
31
@ Property (name = VolunteeringClients .Event .ENABLED , value = "true" )
32
32
class VolunteeringEventControllerTest extends TestContainersSuite implements MemberProfileFixture , RoleFixture , VolunteeringFixture {
33
+ static final double fiveHours = 5.0 ;
34
+ static final double tenHours = 10.0 ;
33
35
34
36
@ Inject
35
37
VolunteeringClients .Event eventClient ;
@@ -63,7 +65,7 @@ void memberCanCreateEventForTheirRelationships() {
63
65
LocalDate now = LocalDate .now ();
64
66
VolunteeringRelationship relationship = createVolunteeringRelationship (tim .getId (), organization .getId (), now );
65
67
66
- var event = new VolunteeringEventDTO (relationship .getId (), now , 10 , "Notes" );
68
+ var event = new VolunteeringEventDTO (relationship .getId (), now , tenHours , "Notes" );
67
69
var createdEvent = eventClient .create (timAuth , event );
68
70
69
71
assertEquals (HttpStatus .CREATED , createdEvent .getStatus ());
@@ -83,7 +85,7 @@ void memberCannotCreateEventForSomeoneElseRelationships() {
83
85
LocalDate now = LocalDate .now ();
84
86
VolunteeringRelationship relationship = createVolunteeringRelationship (tim .getId (), organization .getId (), now );
85
87
86
- var event = new VolunteeringEventDTO (relationship .getId (), now , 10 , "Notes" );
88
+ var event = new VolunteeringEventDTO (relationship .getId (), now , tenHours , "Notes" );
87
89
88
90
MemberProfile bob = memberWithoutBoss ("bob" );
89
91
String bobAuth = auth (bob .getWorkEmail (), MEMBER_ROLE );
@@ -104,7 +106,7 @@ void memberWithPermissionCanCreateEventForSomeoneElseRelationships() {
104
106
MemberProfile bob = memberWithoutBoss ("bob" );
105
107
String bobAuth = auth (bob .getWorkEmail (), ADMIN_ROLE );
106
108
107
- var event = new VolunteeringEventDTO (relationship .getId (), now , 10 , "Notes" );
109
+ var event = new VolunteeringEventDTO (relationship .getId (), now , tenHours , "Notes" );
108
110
var createdEvent = eventClient .create (bobAuth , event );
109
111
110
112
assertEquals (HttpStatus .CREATED , createdEvent .getStatus ());
@@ -124,9 +126,9 @@ void memberCanUpdateTheirOwnEvents() {
124
126
125
127
VolunteeringOrganization organization = createDefaultVolunteeringOrganization ();
126
128
VolunteeringRelationship relationship = createVolunteeringRelationship (tim .getId (), organization .getId (), now );
127
- VolunteeringEvent event = createVolunteeringEvent (relationship .getId (), now , 10 , "Notes" );
129
+ VolunteeringEvent event = createVolunteeringEvent (relationship .getId (), now , tenHours , "Notes" );
128
130
129
- var updated = eventClient .update (timAuth , event .getId (), new VolunteeringEventDTO (relationship .getId (), now , 5 , "New notes" ));
131
+ var updated = eventClient .update (timAuth , event .getId (), new VolunteeringEventDTO (relationship .getId (), now , fiveHours , "New notes" ));
130
132
assertEquals (event .getId (), updated .getId ());
131
133
assertEquals ("New notes" , updated .getNotes ());
132
134
}
@@ -138,12 +140,12 @@ void memberCannotUpdateOthersEvents() {
138
140
139
141
VolunteeringOrganization organization = createDefaultVolunteeringOrganization ();
140
142
VolunteeringRelationship relationship = createVolunteeringRelationship (tim .getId (), organization .getId (), now );
141
- VolunteeringEvent event = createVolunteeringEvent (relationship .getId (), now , 10 , "Notes" );
143
+ VolunteeringEvent event = createVolunteeringEvent (relationship .getId (), now , tenHours , "Notes" );
142
144
143
145
MemberProfile bob = memberWithoutBoss ("bob" );
144
146
String bobAuth = auth (bob .getWorkEmail (), MEMBER_ROLE );
145
147
146
- var e = assertThrows (HttpClientResponseException .class , () -> eventClient .update (bobAuth , event .getId (), new VolunteeringEventDTO (relationship .getId (), now , 5 , "New notes" )));
148
+ var e = assertThrows (HttpClientResponseException .class , () -> eventClient .update (bobAuth , event .getId (), new VolunteeringEventDTO (relationship .getId (), now , fiveHours , "New notes" )));
147
149
assertEquals (HttpStatus .BAD_REQUEST , e .getStatus ());
148
150
assertEquals ("Member %s does not have permission to update Volunteering event for relationship %s" .formatted (bob .getId (), relationship .getId ()), e .getMessage ());
149
151
}
@@ -157,12 +159,12 @@ void memberCannotUpdateTheirEventToSomeoneElse() {
157
159
158
160
VolunteeringOrganization organization = createDefaultVolunteeringOrganization ();
159
161
VolunteeringRelationship relationship = createVolunteeringRelationship (tim .getId (), organization .getId (), now );
160
- VolunteeringEvent event = createVolunteeringEvent (relationship .getId (), now , 10 , "Notes" );
162
+ VolunteeringEvent event = createVolunteeringEvent (relationship .getId (), now , tenHours , "Notes" );
161
163
162
164
MemberProfile bob = memberWithoutBoss ("bob" );
163
165
VolunteeringRelationship bobRelationship = createVolunteeringRelationship (bob .getId (), organization .getId (), now );
164
166
165
- var e = assertThrows (HttpClientResponseException .class , () -> eventClient .update (timAuth , event .getId (), new VolunteeringEventDTO (bobRelationship .getId (), now , 5 , "New notes" )));
167
+ var e = assertThrows (HttpClientResponseException .class , () -> eventClient .update (timAuth , event .getId (), new VolunteeringEventDTO (bobRelationship .getId (), now , fiveHours , "New notes" )));
166
168
assertEquals (HttpStatus .BAD_REQUEST , e .getStatus ());
167
169
assertEquals ("Member %s does not have permission to update Volunteering event for relationship %s" .formatted (tim .getId (), bobRelationship .getId ()), e .getMessage ());
168
170
}
@@ -175,13 +177,13 @@ void memberCannotUpdateSomeoneElseEventToTheirs() {
175
177
176
178
VolunteeringOrganization organization = createDefaultVolunteeringOrganization ();
177
179
VolunteeringRelationship relationship = createVolunteeringRelationship (tim .getId (), organization .getId (), now );
178
- VolunteeringEvent event = createVolunteeringEvent (relationship .getId (), now , 10 , "Notes" );
180
+ VolunteeringEvent event = createVolunteeringEvent (relationship .getId (), now , tenHours , "Notes" );
179
181
180
182
MemberProfile bob = memberWithoutBoss ("bob" );
181
183
String bobAuth = auth (bob .getWorkEmail (), MEMBER_ROLE );
182
184
VolunteeringRelationship bobRelationship = createVolunteeringRelationship (bob .getId (), organization .getId (), now );
183
185
184
- var e = assertThrows (HttpClientResponseException .class , () -> eventClient .update (bobAuth , event .getId (), new VolunteeringEventDTO (bobRelationship .getId (), now , 5 , "New notes" )));
186
+ var e = assertThrows (HttpClientResponseException .class , () -> eventClient .update (bobAuth , event .getId (), new VolunteeringEventDTO (bobRelationship .getId (), now , fiveHours , "New notes" )));
185
187
assertEquals (HttpStatus .BAD_REQUEST , e .getStatus ());
186
188
assertEquals ("Member %s does not have permission to update Volunteering event for relationship %s" .formatted (bob .getId (), relationship .getId ()), e .getMessage ());
187
189
}
@@ -192,13 +194,13 @@ void memberCannotHackUpdateOthersEventsWithTheirOwnRelationship() {
192
194
MemberProfile tim = createADefaultMemberProfile ();
193
195
VolunteeringOrganization organization = createDefaultVolunteeringOrganization ();
194
196
VolunteeringRelationship relationship = createVolunteeringRelationship (tim .getId (), organization .getId (), now );
195
- VolunteeringEvent event = createVolunteeringEvent (relationship .getId (), now , 10 , "Notes" );
197
+ VolunteeringEvent event = createVolunteeringEvent (relationship .getId (), now , tenHours , "Notes" );
196
198
197
199
MemberProfile bob = memberWithoutBoss ("bob" );
198
200
String bobAuth = auth (bob .getWorkEmail (), MEMBER_ROLE );
199
201
VolunteeringRelationship bobsRelationship = createVolunteeringRelationship (bob .getId (), organization .getId (), now );
200
202
201
- var e = assertThrows (HttpClientResponseException .class , () -> eventClient .update (bobAuth , event .getId (), new VolunteeringEventDTO (bobsRelationship .getId (), now , 5 , "New notes" )));
203
+ var e = assertThrows (HttpClientResponseException .class , () -> eventClient .update (bobAuth , event .getId (), new VolunteeringEventDTO (bobsRelationship .getId (), now , fiveHours , "New notes" )));
202
204
assertEquals (HttpStatus .BAD_REQUEST , e .getStatus ());
203
205
assertEquals ("Member %s does not have permission to update Volunteering event for relationship %s" .formatted (bob .getId (), relationship .getId ()), e .getMessage ());
204
206
}
@@ -209,12 +211,12 @@ void memberCanUpdateOthersEventsWithProperPermission() {
209
211
MemberProfile tim = createADefaultMemberProfile ();
210
212
VolunteeringOrganization organization = createDefaultVolunteeringOrganization ();
211
213
VolunteeringRelationship relationship = createVolunteeringRelationship (tim .getId (), organization .getId (), now );
212
- VolunteeringEvent event = createVolunteeringEvent (relationship .getId (), now , 10 , "Notes" );
214
+ VolunteeringEvent event = createVolunteeringEvent (relationship .getId (), now , tenHours , "Notes" );
213
215
214
216
MemberProfile bob = memberWithoutBoss ("bob" );
215
217
String bobAuth = auth (bob .getWorkEmail (), ADMIN_ROLE );
216
218
217
- var updated = eventClient .update (bobAuth , event .getId (), new VolunteeringEventDTO (relationship .getId (), now , 5 , "New notes" ));
219
+ var updated = eventClient .update (bobAuth , event .getId (), new VolunteeringEventDTO (relationship .getId (), now , fiveHours , "New notes" ));
218
220
assertEquals (event .getId (), updated .getId ());
219
221
assertEquals ("New notes" , updated .getNotes ());
220
222
}
@@ -226,7 +228,7 @@ void memberCanDeleteTheirOwnEvents() {
226
228
String timAuth = auth (tim .getWorkEmail (), MEMBER_ROLE );
227
229
VolunteeringOrganization organization = createDefaultVolunteeringOrganization ();
228
230
VolunteeringRelationship relationship = createVolunteeringRelationship (tim .getId (), organization .getId (), now );
229
- VolunteeringEvent event = createVolunteeringEvent (relationship .getId (), now , 10 , "Notes" );
231
+ VolunteeringEvent event = createVolunteeringEvent (relationship .getId (), now , tenHours , "Notes" );
230
232
231
233
var deletedEvent = eventClient .delete (timAuth , event .getId ());
232
234
assertEquals (HttpStatus .OK , deletedEvent .getStatus ());
@@ -238,7 +240,7 @@ void memberCannotDeleteOthersEvents() {
238
240
MemberProfile tim = createADefaultMemberProfile ();
239
241
VolunteeringOrganization organization = createDefaultVolunteeringOrganization ();
240
242
VolunteeringRelationship relationship = createVolunteeringRelationship (tim .getId (), organization .getId (), now );
241
- VolunteeringEvent event = createVolunteeringEvent (relationship .getId (), now , 10 , "Notes" );
243
+ VolunteeringEvent event = createVolunteeringEvent (relationship .getId (), now , tenHours , "Notes" );
242
244
243
245
MemberProfile bob = memberWithoutBoss ("bob" );
244
246
String bobAuth = auth (bob .getWorkEmail (), MEMBER_ROLE );
@@ -254,7 +256,7 @@ void memberWithPermissionCanDeleteOthersEvents() {
254
256
MemberProfile tim = createADefaultMemberProfile ();
255
257
VolunteeringOrganization organization = createDefaultVolunteeringOrganization ();
256
258
VolunteeringRelationship relationship = createVolunteeringRelationship (tim .getId (), organization .getId (), now );
257
- VolunteeringEvent event = createVolunteeringEvent (relationship .getId (), now , 10 , "Notes" );
259
+ VolunteeringEvent event = createVolunteeringEvent (relationship .getId (), now , tenHours , "Notes" );
258
260
259
261
MemberProfile bob = memberWithoutBoss ("bob" );
260
262
String bobAuth = auth (bob .getWorkEmail (), ADMIN_ROLE );
@@ -304,13 +306,13 @@ void eventListCanBeFiltered() {
304
306
var bobClosed = createVolunteeringRelationship (bob .getId (), closedOrg .getId (), now .minusDays (100 ), now .minusDays (50 ), false );
305
307
var clairClosed = createVolunteeringRelationship (claire .getId (), closedOrg .getId (), now .minusDays (1 ), now );
306
308
307
- var aliceLiftEvent1 = createVolunteeringEvent (aliceLiftForLife .getId (), now .minusDays (2 ), 10 , "aliceLiftEvent1" ); // 2 days ago
309
+ var aliceLiftEvent1 = createVolunteeringEvent (aliceLiftForLife .getId (), now .minusDays (2 ), tenHours , "aliceLiftEvent1" ); // 2 days ago
308
310
var aliceLiftEvent2 = createVolunteeringEvent (aliceLiftForLife .getId (), now , 8 , "aliceLiftEvent2" ); // today
309
311
var bobLiftEvent1 = createVolunteeringEvent (bobLiftForLife .getId (), now , 6 , "bobLiftEvent1" ); // today
310
312
var clairLiftEvent1 = createVolunteeringEvent (claireLiftForLife .getId (), now .minusDays (3 ), 4 , "clairLiftEvent1" ); // 3 days ago
311
313
var aliceFoodEvent1 = createVolunteeringEvent (aliceFood .getId (), now .minusDays (20 ), 2 , "aliceFoodEvent1" ); // 20 days ago
312
314
var clairFoodEvent1 = createVolunteeringEvent (claireFood .getId (), now , 1 , "clairFoodEvent1" ); // today
313
- var bobClosedEvent1 = createVolunteeringEvent (bobClosed .getId (), now .minusDays (76 ), 10 , "bobClosedEvent1" ); // 76 days ago
315
+ var bobClosedEvent1 = createVolunteeringEvent (bobClosed .getId (), now .minusDays (76 ), tenHours , "bobClosedEvent1" ); // 76 days ago
314
316
var clairClosedEvent1 = createVolunteeringEvent (clairClosed .getId (), now .minusDays (1 ), 0 , "clairClosedEvent1" ); // yesterday
315
317
316
318
// List all events, sorted by event date and then by organization name
@@ -353,10 +355,10 @@ void relationshipMustExist() {
353
355
String timAuth = auth (tim .getWorkEmail (), MEMBER_ROLE );
354
356
VolunteeringOrganization organization = createDefaultVolunteeringOrganization ();
355
357
VolunteeringRelationship relationship = createVolunteeringRelationship (tim .getId (), organization .getId (), now );
356
- VolunteeringEvent event = createVolunteeringEvent (relationship .getId (), now , 10 , "Notes" );
358
+ VolunteeringEvent event = createVolunteeringEvent (relationship .getId (), now , tenHours , "Notes" );
357
359
UUID randomId = UUID .randomUUID ();
358
360
359
- VolunteeringEventDTO newEvent = new VolunteeringEventDTO (randomId , now , 10 , "Notes" );
361
+ VolunteeringEventDTO newEvent = new VolunteeringEventDTO (randomId , now , tenHours , "Notes" );
360
362
361
363
// Creating an event with a non-existent relationship should fail
362
364
var e = assertThrows (HttpClientResponseException .class , () -> eventClient .create (timAuth , newEvent ));
@@ -376,9 +378,9 @@ void eventDateMustBeSet() {
376
378
String timAuth = auth (tim .getWorkEmail (), MEMBER_ROLE );
377
379
VolunteeringOrganization organization = createDefaultVolunteeringOrganization ();
378
380
VolunteeringRelationship relationship = createVolunteeringRelationship (tim .getId (), organization .getId (), now );
379
- VolunteeringEvent event = createVolunteeringEvent (relationship .getId (), now , 10 , "Notes" );
381
+ VolunteeringEvent event = createVolunteeringEvent (relationship .getId (), now , tenHours , "Notes" );
380
382
381
- VolunteeringEventDTO newEvent = new VolunteeringEventDTO (relationship .getId (), null , 10 , "Notes" );
383
+ VolunteeringEventDTO newEvent = new VolunteeringEventDTO (relationship .getId (), null , tenHours , "Notes" );
382
384
383
385
// Creating an event with a null date should fail
384
386
var e = assertThrows (HttpClientResponseException .class , () -> eventClient .create (timAuth , newEvent ));
@@ -400,9 +402,9 @@ void hoursMustBeNonNegative() {
400
402
String timAuth = auth (tim .getWorkEmail (), MEMBER_ROLE );
401
403
VolunteeringOrganization organization = createDefaultVolunteeringOrganization ();
402
404
VolunteeringRelationship relationship = createVolunteeringRelationship (tim .getId (), organization .getId (), now );
403
- VolunteeringEvent event = createVolunteeringEvent (relationship .getId (), now , 10 , "Notes" );
405
+ VolunteeringEvent event = createVolunteeringEvent (relationship .getId (), now , tenHours , "Notes" );
404
406
405
- VolunteeringEventDTO newEvent = new VolunteeringEventDTO (relationship .getId (), now , -1 , "Notes" );
407
+ VolunteeringEventDTO newEvent = new VolunteeringEventDTO (relationship .getId (), now , -1.0 , "Notes" );
406
408
407
409
// Creating an event with negative hours should fail
408
410
var e = assertThrows (HttpClientResponseException .class , () -> eventClient .create (timAuth , newEvent ));
@@ -422,7 +424,7 @@ void hoursAreRequired() {
422
424
423
425
VolunteeringOrganization organization = createDefaultVolunteeringOrganization ();
424
426
VolunteeringRelationship relationship = createVolunteeringRelationship (tim .getId (), organization .getId (), now );
425
- VolunteeringEvent event = createVolunteeringEvent (relationship .getId (), now , 10 , "Notes" );
427
+ VolunteeringEvent event = createVolunteeringEvent (relationship .getId (), now , tenHours , "Notes" );
426
428
String postBody = """
427
429
{
428
430
"relationshipId": "%s",
0 commit comments