33import com .objectcomputing .checkins .services .feedback_template .FeedbackTemplate ;
44import com .objectcomputing .checkins .services .memberprofile .MemberProfile ;
55import com .objectcomputing .checkins .services .reviews .ReviewPeriod ;
6+ import jnr .constants .platform .Local ;
67
78import java .time .LocalDate ;
89
10+ import java .time .LocalDateTime ;
11+ import java .time .temporal .ChronoUnit ;
12+ import java .time .temporal .TemporalField ;
13+ import java .util .Date ;
14+ import java .util .Random ;
915import java .util .UUID ;
1016import java .util .List ;
17+ import java .util .concurrent .ThreadLocalRandom ;
1118
1219public interface FeedbackRequestFixture extends RepositoryFixture , FeedbackTemplateFixture {
1320
@@ -51,6 +58,15 @@ default FeedbackRequest saveSampleFeedbackRequest(MemberProfile creator, MemberP
5158 return getFeedbackRequestRepository ().save (new FeedbackRequest (creator .getId (), requestee .getId (), recipient .getId (), templateId , testDate , null , "pending" , null , null ));
5259 }
5360
61+ default LocalDate getRandomLocalDateTime (LocalDateTime start , LocalDateTime end ) {
62+ LocalDate startDate = start .toLocalDate ();
63+ long daysBetween = ChronoUnit .DAYS .between (startDate , end .toLocalDate ());
64+ Random random = new Random ();
65+ long randomDays = random .nextLong (daysBetween );
66+
67+ return startDate .plusDays (randomDays );
68+ }
69+
5470 /**
5571 * Saves a sample feedback request
5672 * @param creator The {@link MemberProfile} of the creator of the feedback request
@@ -60,8 +76,13 @@ default FeedbackRequest saveSampleFeedbackRequest(MemberProfile creator, MemberP
6076 * @return The saved {@link FeedbackRequest}
6177 */
6278 default FeedbackRequest saveSampleFeedbackRequest (MemberProfile creator , MemberProfile requestee , MemberProfile recipient , UUID templateId , ReviewPeriod reviewPeriod ) {
63- LocalDate testDate = LocalDate .of (2010 , 10 , 8 );
64- return getFeedbackRequestRepository ().save (new FeedbackRequest (creator .getId (), requestee .getId (), recipient .getId (), templateId , testDate , null , "pending" , null , reviewPeriod .getId ()));
79+ return saveSampleFeedbackRequest (creator , requestee , recipient , templateId , reviewPeriod , "pending" );
80+ }
81+
82+ default FeedbackRequest saveSampleFeedbackRequest (MemberProfile creator , MemberProfile requestee , MemberProfile recipient , UUID templateId , ReviewPeriod reviewPeriod , String status ) {
83+ LocalDate submitDate = getRandomLocalDateTime (reviewPeriod .getPeriodStartDate (), reviewPeriod .getCloseDate ());
84+ LocalDate sendDate = getRandomLocalDateTime (reviewPeriod .getPeriodStartDate (), submitDate .atStartOfDay ());
85+ return getFeedbackRequestRepository ().save (new FeedbackRequest (creator .getId (), requestee .getId (), recipient .getId (), templateId , sendDate , null , status , submitDate , reviewPeriod .getId ()));
6586 }
6687
6788 default FeedbackRequest saveSampleFeedbackRequestWithStatus (MemberProfile creator , MemberProfile requestee , MemberProfile recipient , UUID templateId , String status ) {
0 commit comments