Skip to content

Commit cc91d13

Browse files
committed
Pulled the various validateEmail() methods into a helper.
1 parent 3f6f328 commit cc91d13

File tree

5 files changed

+88
-80
lines changed

5 files changed

+88
-80
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.objectcomputing.checkins.services;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.junit.jupiter.api.Assertions.assertTrue;
5+
6+
import java.util.List;
7+
8+
public class EmailHelper {
9+
public static void validateEmail(String action, String fromName,
10+
String fromAddress, String subject,
11+
String partialBody, String recipients,
12+
List<String> event) {
13+
assertEquals(6, event.size());
14+
assertEquals(action, event.get(0));
15+
assertEquals(fromName, event.get(1));
16+
assertEquals(fromAddress, event.get(2));
17+
assertEquals(subject, event.get(3));
18+
if (partialBody != null && !partialBody.isEmpty()) {
19+
assertTrue(event.get(4).contains(partialBody));
20+
}
21+
assertEquals(recipients, event.get(5));
22+
}
23+
}

server/src/test/java/com/objectcomputing/checkins/services/feedback_request/FeedbackRequestControllerTest.java

Lines changed: 15 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import com.objectcomputing.checkins.services.memberprofile.MemberProfile;
1515
import com.objectcomputing.checkins.services.reviews.ReviewPeriod;
1616
import com.objectcomputing.checkins.services.role.RoleType;
17+
import com.objectcomputing.checkins.services.EmailHelper;
1718
import com.objectcomputing.checkins.util.Util;
1819
import io.micronaut.context.annotation.Property;
1920
import io.micronaut.core.type.Argument;
@@ -187,13 +188,13 @@ void testCreateFeedbackRequestSendsEmailNow() {
187188
//verify appropriate email was sent
188189
assertTrue(response.getBody().isPresent());
189190
assertEquals(1, emailSender.events.size());
190-
validateEmail("SEND_EMAIL",
191-
fromName,
192-
pdlMemberProfile.getWorkEmail(),
193-
checkInsConfiguration.getApplication().getFeedback().getRequestSubject(),
194-
"You have received a feedback request",
195-
recipient.getWorkEmail(),
196-
emailSender.events.getFirst()
191+
EmailHelper.validateEmail("SEND_EMAIL",
192+
fromName,
193+
pdlMemberProfile.getWorkEmail(),
194+
checkInsConfiguration.getApplication().getFeedback().getRequestSubject(),
195+
"You have received a feedback request",
196+
recipient.getWorkEmail(),
197+
emailSender.events.getFirst()
197198
);
198199
}
199200

@@ -1049,13 +1050,13 @@ void testFeedbackRequestEnableEditsSendsEmail() {
10491050
// Verify appropriate email was sent
10501051
assertTrue(response.getBody().isPresent());
10511052
assertEquals(1, emailSender.events.size());
1052-
validateEmail("SEND_EMAIL",
1053-
fromName,
1054-
pdl.getWorkEmail(),
1055-
checkInsConfiguration.getApplication().getFeedback().getRequestSubject(),
1056-
"You have received edit access to a feedback request",
1057-
recipient.getWorkEmail(),
1058-
emailSender.events.getFirst()
1053+
EmailHelper.validateEmail("SEND_EMAIL",
1054+
fromName,
1055+
pdl.getWorkEmail(),
1056+
checkInsConfiguration.getApplication().getFeedback().getRequestSubject(),
1057+
"You have received edit access to a feedback request",
1058+
recipient.getWorkEmail(),
1059+
emailSender.events.getFirst()
10591060
);
10601061
}
10611062

@@ -1414,18 +1415,4 @@ void testGetMultipleRequesteesBySupervisor() {
14141415
assertResponseEqualsEntity(feedbackReq, response.getBody().get().get(0));
14151416
assertResponseEqualsEntity(feedbackReqTwo, response.getBody().get().get(1));
14161417
}
1417-
1418-
private void validateEmail(String action, String fromName,
1419-
String fromAddress, String subject,
1420-
String partial, String toAddress,
1421-
List<String> event) {
1422-
assertEquals(action, event.get(0));
1423-
assertEquals(fromName, event.get(1));
1424-
assertEquals(fromAddress, event.get(2));
1425-
assertEquals(subject, event.get(3));
1426-
if (partial != null && !partial.isEmpty()) {
1427-
assertTrue(event.get(4).contains(partial));
1428-
}
1429-
assertEquals(toAddress, event.get(5));
1430-
}
14311418
}

server/src/test/java/com/objectcomputing/checkins/services/feedback_request/FeedbackRequestTest.java

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import com.objectcomputing.checkins.services.reviews.ReviewAssignmentRepository;
1414
import com.objectcomputing.checkins.services.reviews.ReviewPeriod;
1515
import com.objectcomputing.checkins.services.reviews.ReviewPeriodRepository;
16+
import com.objectcomputing.checkins.services.EmailHelper;
1617
import io.micronaut.context.annotation.Property;
1718
import io.micronaut.core.util.StringUtils;
1819
import io.micronaut.runtime.server.EmbeddedServer;
@@ -277,9 +278,7 @@ void testSendSelfReviewCompletionEmailToReviewers() {
277278

278279
// This should equal the number of review assignments.
279280
assertEquals(2, emailSender.events.size());
280-
validateEmail("SEND_EMAIL", "null", "null", "firstName lastName has finished their self-review for Self-Review Test.", "firstName lastName has completed their self-review",
281-
emailSender.events.getFirst()
282-
);
281+
EmailHelper.validateEmail("SEND_EMAIL", "null", "null", "firstName lastName has finished their self-review for Self-Review Test.", "firstName lastName has completed their self-review", reviewer02.getWorkEmail(), emailSender.events.getFirst());
283282
}
284283

285284
@Test
@@ -325,8 +324,7 @@ void testSendSelfReviewCompletionEmailToSupervisor() {
325324
feedbackRequestServices.sendSelfReviewCompletionEmailToSupervisor(feedbackRequest);
326325

327326
assertEquals(1, emailSender.events.size());
328-
validateEmail("SEND_EMAIL", "null", "null", "firstName lastName has finished their self-review for Self-Review Test.", "firstName lastName has completed their self-review", emailSender.events.getFirst()
329-
);
327+
EmailHelper.validateEmail("SEND_EMAIL", "null", "null", "firstName lastName has finished their self-review for Self-Review Test.", "firstName lastName has completed their self-review", supervisorProfile.getWorkEmail(), emailSender.events.getFirst());
330328
}
331329

332330
@Test
@@ -393,19 +391,6 @@ void testSendSelfReviewCompletionEmailToSupervisor_EmailSenderException() {
393391

394392
assertDoesNotThrow(() -> feedbackRequestServices.sendSelfReviewCompletionEmailToSupervisor(new FeedbackRequest()));
395393
assertEquals(1, emailSender.events.size());
396-
validateEmail("SEND_EMAIL", "null", "null", "firstName lastName has finished their self-review.", "firstName lastName has completed their self-review", emailSender.events.getFirst()
397-
);
398-
}
399-
400-
private void validateEmail(String action, String fromName,
401-
String fromAddress, String subject,
402-
String partial, List<String> event) {
403-
assertEquals(action, event.get(0));
404-
assertEquals(fromName, event.get(1));
405-
assertEquals(fromAddress, event.get(2));
406-
assertEquals(subject, event.get(3));
407-
if (partial != null && !partial.isEmpty()) {
408-
assertTrue(event.get(4).contains(partial));
409-
}
394+
EmailHelper.validateEmail("SEND_EMAIL", "null", "null", "firstName lastName has finished their self-review.", "firstName lastName has completed their self-review", supervisorProfile.getWorkEmail(), emailSender.events.getFirst());
410395
}
411396
}

server/src/test/java/com/objectcomputing/checkins/services/pulse/PulseServicesTest.java

Lines changed: 16 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.objectcomputing.checkins.services.settings.SettingsServices;
1111
import com.objectcomputing.checkins.services.settings.Setting;
1212
import com.objectcomputing.checkins.services.memberprofile.MemberProfile;
13+
import com.objectcomputing.checkins.services.EmailHelper;
1314

1415
import io.micronaut.core.util.StringUtils;
1516
import io.micronaut.context.annotation.Property;
@@ -99,11 +100,11 @@ void testBiWeeklySendEmail() {
99100
pulseServices.sendPendingEmail(biWeeklyDate);
100101
assertEquals(1, emailSender.events.size());
101102

102-
validateEmail("SEND_EMAIL", "null", "null",
103-
"Check Out the Pulse Survey!",
104-
"Please fill out your Pulse survey, if you haven't already done so.",
105-
recipients,
106-
emailSender.events.getFirst());
103+
EmailHelper.validateEmail("SEND_EMAIL", "null", "null",
104+
"Check Out the Pulse Survey!",
105+
"Please fill out your Pulse survey, if you haven't already done so.",
106+
recipients,
107+
emailSender.events.getFirst());
107108
}
108109

109110
@Test
@@ -114,11 +115,11 @@ void testWeeklySendEmail() {
114115
pulseServices.sendPendingEmail(weeklyDate);
115116
assertEquals(1, emailSender.events.size());
116117

117-
validateEmail("SEND_EMAIL", "null", "null",
118-
"Check Out the Pulse Survey!",
119-
"Please fill out your Pulse survey, if you haven't already done so.",
120-
recipients,
121-
emailSender.events.getFirst());
118+
EmailHelper.validateEmail("SEND_EMAIL", "null", "null",
119+
"Check Out the Pulse Survey!",
120+
"Please fill out your Pulse survey, if you haven't already done so.",
121+
recipients,
122+
emailSender.events.getFirst());
122123
}
123124

124125
@Test
@@ -129,11 +130,11 @@ void testMonthlySendEmail() {
129130
pulseServices.sendPendingEmail(monthlyDate);
130131
assertEquals(1, emailSender.events.size());
131132

132-
validateEmail("SEND_EMAIL", "null", "null",
133-
"Check Out the Pulse Survey!",
134-
"Please fill out your Pulse survey, if you haven't already done so.",
135-
recipients,
136-
emailSender.events.getFirst());
133+
EmailHelper.validateEmail("SEND_EMAIL", "null", "null",
134+
"Check Out the Pulse Survey!",
135+
"Please fill out your Pulse survey, if you haven't already done so.",
136+
recipients,
137+
emailSender.events.getFirst());
137138
}
138139

139140
@Test
@@ -161,18 +162,4 @@ void testNoSendEmail() {
161162
// This should be zero because the date is not a Monday.
162163
assertEquals(0, emailSender.events.size());
163164
}
164-
165-
private void validateEmail(String action, String fromName,
166-
String fromAddress, String subject,
167-
String partial, String recipients,
168-
List<String> event) {
169-
assertEquals(action, event.get(0));
170-
assertEquals(fromName, event.get(1));
171-
assertEquals(fromAddress, event.get(2));
172-
assertEquals(subject, event.get(3));
173-
if (partial != null && !partial.isEmpty()) {
174-
assertTrue(event.get(4).contains(partial));
175-
}
176-
assertEquals(recipients, event.get(5));
177-
}
178165
}

server/src/test/java/com/objectcomputing/checkins/services/reviews/ReviewPeriodControllerTest.java

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@
1212
import com.objectcomputing.checkins.services.fixture.ReviewPeriodFixture;
1313
import com.objectcomputing.checkins.services.fixture.RoleFixture;
1414
import com.objectcomputing.checkins.services.memberprofile.MemberProfile;
15+
import com.objectcomputing.checkins.services.memberprofile.MemberProfileUtils;
1516
import com.objectcomputing.checkins.services.feedback_request.FeedbackRequest;
1617
import com.objectcomputing.checkins.services.feedback_template.FeedbackTemplate;
18+
import com.objectcomputing.checkins.services.EmailHelper;
1719
import com.objectcomputing.checkins.exceptions.BadArgException;
1820
import io.micronaut.context.annotation.Property;
1921
import io.micronaut.core.type.Argument;
@@ -65,7 +67,7 @@ class ReviewPeriodControllerTest
6567
private HttpClient client;
6668

6769
@Inject
68-
@Named(MailJetFactory.HTML_FORMAT)
70+
@Named(MailJetFactory.MJML_FORMAT)
6971
private MailJetFactoryReplacement.MockEmailSender emailSender;
7072

7173
@Inject
@@ -512,9 +514,11 @@ void testPUTReviewPeriodAwaitingApproval() {
512514

513515
// expect email has been sent
514516
assertEquals(1, emailSender.events.size());
515-
assertEquals(
516-
List.of("SEND_EMAIL", "null", "null", "Review Assignments Awaiting Approval", "<h3>Review Assignments for Review Period '" + reviewPeriod.getName() + "' are ready for your approval.</h3><a href=\"https://checkins.objectcomputing.com/feedback/reviews?period=" + reviewPeriod.getId() + "\">Click here</a> to review and approve reviewer assignments in the Check-Ins app.", supervisor.getWorkEmail()),
517-
emailSender.events.getFirst()
517+
EmailHelper.validateEmail("SEND_EMAIL", "null", "null",
518+
"Review Assignments Awaiting Approval",
519+
"Click <a href=\"https://checkins.objectcomputing.com/feedback/reviews?period=" + reviewPeriod.getId() + "\">here</a> to review and approve reviewer assignments in the Check-Ins app.",
520+
supervisor.getWorkEmail(),
521+
emailSender.events.getFirst()
518522
);
519523
}
520524

@@ -544,6 +548,14 @@ void testPUTReviewPeriodOpen() {
544548
FeedbackRequest feedbackRequest = requests.get(0);
545549
assertEquals(member.getId(), feedbackRequest.getRequesteeId());
546550
assertEquals(reviewPeriod.getId(), feedbackRequest.getReviewPeriodId());
551+
552+
assertEquals(2, emailSender.events.size());
553+
EmailHelper.validateEmail("SEND_EMAIL", "null", "null",
554+
"It's time for performance reviews!",
555+
"Help us make this a valuable experience for everyone!",
556+
member.getWorkEmail() + "," + supervisor.getWorkEmail(),
557+
emailSender.events.get(1)
558+
);
547559
}
548560

549561
@Test
@@ -807,4 +819,18 @@ void testCreateAReviewPeriodWithBadEndDate2() {
807819
assertTrue(exception.getMessage()
808820
.contains("end date must be on or before"));
809821
}
822+
823+
private void validateEmail(String action, String fromName,
824+
String fromAddress, String subject,
825+
String partial, String recipients,
826+
List<String> event) {
827+
assertEquals(action, event.get(0));
828+
assertEquals(fromName, event.get(1));
829+
assertEquals(fromAddress, event.get(2));
830+
assertEquals(subject, event.get(3));
831+
if (partial != null && !partial.isEmpty()) {
832+
assertTrue(event.get(4).contains(partial));
833+
}
834+
assertEquals(recipients, event.get(5));
835+
}
810836
}

0 commit comments

Comments
 (0)