@@ -801,10 +801,11 @@ void testGetFeedbackRequestByUnassignedPdlToExternalRecipient() {
801801 //get feedback request
802802 final HttpRequest <?> request = HttpRequest .GET (String .format ("%s" , feedbackRequest .getId ()))
803803 .basicAuth (unrelatedPdl .getWorkEmail (), RoleType .Constants .PDL_ROLE );
804- final HttpClientResponseException responseException = assertThrows (HttpClientResponseException .class , () ->
805- client .toBlocking ().exchange (request , Map .class ));
804+ final HttpResponse <FeedbackRequestResponseDTO > response = client .toBlocking ().exchange (request , FeedbackRequestResponseDTO .class );
806805
807- assertUnauthorized (responseException );
806+ assertEquals (HttpStatus .OK , response .getStatus ());
807+ assertTrue (response .getBody ().isPresent ());
808+ assertResponseEqualsEntity (feedbackRequest , response .getBody ().get ());
808809 }
809810
810811 @ Test
@@ -838,11 +839,11 @@ void testGetFeedbackRequestByRequesteeToExternalRecipient() {
838839 //get feedback request
839840 final HttpRequest <?> request = HttpRequest .GET (String .format ("%s" , feedbackRequest .getId ()))
840841 .basicAuth (memberProfile2 .getWorkEmail (), RoleType .Constants .MEMBER_ROLE );
841- final HttpClientResponseException responseException = assertThrows (HttpClientResponseException .class , () ->
842- client .toBlocking ().exchange (request , Map .class ));
842+ final HttpResponse <FeedbackRequestResponseDTO > response = client .toBlocking ().exchange (request , FeedbackRequestResponseDTO .class );
843843
844- // requestee should not be able to get the feedback request about them
845- assertUnauthorized (responseException );
844+ assertEquals (HttpStatus .OK , response .getStatus ());
845+ assertTrue (response .getBody ().isPresent ());
846+ assertResponseEqualsEntity (feedbackRequest , response .getBody ().get ());
846847 }
847848
848849 @ Test
@@ -884,7 +885,7 @@ void testGetFeedbackRequestByExternalRecipient() {
884885 }
885886
886887 @ Test
887- void testGetFeedbackRequestByReviewPeriodId () {
888+ void testGetFeedbackRequestByReviewPeriodIdToRecipient () {
888889 ReviewPeriod reviewPeriod = createADefaultReviewPeriod ();
889890 MemberProfile pdlMemberProfile = createADefaultMemberProfile ();
890891 assignAdminRole (pdlMemberProfile );
@@ -906,7 +907,28 @@ void testGetFeedbackRequestByReviewPeriodId() {
906907 }
907908
908909 @ Test
909- void testGetFeedbackRequestByUnrelatedUser () {
910+ void testGetFeedbackRequestByReviewPeriodIdToExternalRecipient () {
911+ ReviewPeriod reviewPeriod = createADefaultReviewPeriod ();
912+ MemberProfile pdlMemberProfile = createADefaultMemberProfile ();
913+ assignAdminRole (pdlMemberProfile );
914+ MemberProfile requestee = createADefaultMemberProfileForPdl (pdlMemberProfile );
915+ final FeedbackExternalRecipient externalRecipient = createADefaultFeedbackExternalRecipient ();
916+ FeedbackRequest feedbackRequest = saveFeedbackRequest (pdlMemberProfile , requestee , externalRecipient , reviewPeriod );
917+
918+ //search for feedback requests by a specific creator
919+ final HttpRequest <?> request = HttpRequest .GET (String .format ("/?reviewPeriodId=%s" , reviewPeriod .getId ()))
920+ .basicAuth (pdlMemberProfile .getWorkEmail (), RoleType .Constants .ADMIN_ROLE );
921+ final HttpResponse <List <FeedbackRequestResponseDTO >> response = client .toBlocking ()
922+ .exchange (request , Argument .listOf (FeedbackRequestResponseDTO .class ));
923+
924+ assertEquals (HttpStatus .OK , response .getStatus ());
925+ assertTrue (response .getBody ().isPresent ());
926+ assertEquals (1 , response .getBody ().get ().size ());
927+ assertResponseEqualsEntity (feedbackRequest , response .getBody ().get ().get (0 ));
928+ }
929+
930+ @ Test
931+ void testGetFeedbackRequestByUnrelatedUserToRecipient () {
910932 MemberProfile pdlMemberProfile = createADefaultMemberProfile ();
911933 assignPdlRole (pdlMemberProfile );
912934 MemberProfile requestee = createADefaultMemberProfileForPdl (pdlMemberProfile );
@@ -924,7 +946,26 @@ void testGetFeedbackRequestByUnrelatedUser() {
924946 }
925947
926948 @ Test
927- void testGetByCreatorIdPermitted () {
949+ void testGetFeedbackRequestByUnrelatedUserToExternalRecipient () {
950+ MemberProfile pdlMemberProfile = createADefaultMemberProfile ();
951+ assignPdlRole (pdlMemberProfile );
952+ MemberProfile requestee = createADefaultMemberProfileForPdl (pdlMemberProfile );
953+ final FeedbackExternalRecipient externalRecipient = createADefaultFeedbackExternalRecipient ();
954+ MemberProfile unrelatedUser = createAnUnrelatedUser ();
955+ FeedbackRequest feedbackRequest = saveFeedbackRequest (pdlMemberProfile , requestee , externalRecipient );
956+
957+ //get feedback request
958+ final HttpRequest <?> request = HttpRequest .GET (String .format ("%s" , feedbackRequest .getId ()))
959+ .basicAuth (unrelatedUser .getWorkEmail (), RoleType .Constants .MEMBER_ROLE );
960+ final HttpResponse <FeedbackRequestResponseDTO > response = client .toBlocking ().exchange (request , FeedbackRequestResponseDTO .class );
961+
962+ assertEquals (HttpStatus .OK , response .getStatus ());
963+ assertTrue (response .getBody ().isPresent ());
964+ assertResponseEqualsEntity (feedbackRequest , response .getBody ().get ());
965+ }
966+
967+ @ Test
968+ void testGetByCreatorIdPermittedToRecipients () {
928969 //create two employee-PDL relationships
929970 MemberProfile pdlMemberProfile = createADefaultMemberProfile ();
930971 assignPdlRole (pdlMemberProfile );
@@ -953,7 +994,36 @@ void testGetByCreatorIdPermitted() {
953994 }
954995
955996 @ Test
956- void testGetByCreatorIdPermittedMultipleReqs () {
997+ void testGetByCreatorIdPermittedToExternalRecipients () {
998+ //create two employee-PDL relationships
999+ MemberProfile pdlMemberProfile = createADefaultMemberProfile ();
1000+ assignPdlRole (pdlMemberProfile );
1001+ MemberProfile memberOne = createADefaultMemberProfileForPdl (pdlMemberProfile );
1002+ MemberProfile pdlMemberProfileTwo = createASecondDefaultMemberProfile ();
1003+ assignPdlRole (pdlMemberProfileTwo );
1004+ MemberProfile memberTwo = createASecondDefaultMemberProfileForPdl (pdlMemberProfileTwo );
1005+ final FeedbackExternalRecipient externalRecipient01 = createADefaultFeedbackExternalRecipient ();
1006+ final FeedbackExternalRecipient externalRecipient02 = createASecondDefaultFeedbackExternalRecipient ();
1007+
1008+ // Create a feedback request from a PDL
1009+ FeedbackRequest feedbackReq = saveFeedbackRequest (pdlMemberProfile , memberOne , externalRecipient01 );
1010+ // Create a feedback request by a different PDL
1011+ saveFeedbackRequest (pdlMemberProfileTwo , memberTwo , externalRecipient02 );
1012+
1013+ //search for feedback requests by a specific creator
1014+ final HttpRequest <?> request = HttpRequest .GET (String .format ("/?creatorId=%s" , feedbackReq .getCreatorId ()))
1015+ .basicAuth (pdlMemberProfile .getWorkEmail (), RoleType .Constants .PDL_ROLE );
1016+ final HttpResponse <List <FeedbackRequestResponseDTO >> response = client .toBlocking ()
1017+ .exchange (request , Argument .listOf (FeedbackRequestResponseDTO .class ));
1018+
1019+ assertEquals (HttpStatus .OK , response .getStatus ());
1020+ assertTrue (response .getBody ().isPresent ());
1021+ assertEquals (1 , response .getBody ().get ().size ());
1022+ assertResponseEqualsEntity (feedbackReq , response .getBody ().get ().get (0 ));
1023+ }
1024+
1025+ @ Test
1026+ void testGetByCreatorIdPermittedMultipleReqsToRecipients () {
9571027 //create two employee-PDL relationships
9581028 MemberProfile pdlMemberProfile = createADefaultMemberProfile ();
9591029 assignPdlRole (pdlMemberProfile );
@@ -984,6 +1054,36 @@ void testGetByCreatorIdPermittedMultipleReqs() {
9841054 assertResponseEqualsEntity (feedbackReqTwo , response .getBody ().get ().get (1 ));
9851055 }
9861056
1057+ @ Test
1058+ void testGetByCreatorIdPermittedMultipleReqsToExternalRecipients () {
1059+ //create two employee-PDL relationships
1060+ MemberProfile pdlMemberProfile = createADefaultMemberProfile ();
1061+ assignPdlRole (pdlMemberProfile );
1062+ MemberProfile memberOne = createADefaultMemberProfileForPdl (pdlMemberProfile );
1063+ MemberProfile pdlMemberProfileTwo = createASecondDefaultMemberProfile ();
1064+ assignPdlRole (pdlMemberProfileTwo );
1065+ MemberProfile memberTwo = createASecondDefaultMemberProfileForPdl (pdlMemberProfileTwo );
1066+ MemberProfile memberThree = createAThirdDefaultMemberProfileForPdl (pdlMemberProfileTwo );
1067+ final FeedbackExternalRecipient externalRecipient01 = createADefaultFeedbackExternalRecipient ();
1068+
1069+ // Create two sample feedback requests by the same PDL
1070+ FeedbackRequest feedbackReq = saveFeedbackRequest (pdlMemberProfile , memberOne , externalRecipient01 );
1071+ FeedbackRequest feedbackReqTwo = saveFeedbackRequest (pdlMemberProfile , memberTwo , externalRecipient01 );
1072+ // Create a feedback request by a different PDL
1073+ saveFeedbackRequest (pdlMemberProfileTwo , memberThree , externalRecipient01 );
1074+
1075+ final HttpRequest <?> request = HttpRequest .GET (String .format ("/?creatorId=%s" , feedbackReq .getCreatorId ()))
1076+ .basicAuth (pdlMemberProfile .getWorkEmail (), RoleType .Constants .PDL_ROLE );
1077+ final HttpResponse <List <FeedbackRequestResponseDTO >> response = client .toBlocking ()
1078+ .exchange (request , Argument .listOf (FeedbackRequestResponseDTO .class ));
1079+
1080+ assertEquals (HttpStatus .OK , response .getStatus ());
1081+ assertTrue (response .getBody ().isPresent ());
1082+ assertEquals (2 , response .getBody ().get ().size ());
1083+ assertResponseEqualsEntity (feedbackReq , response .getBody ().get ().get (0 ));
1084+ assertResponseEqualsEntity (feedbackReqTwo , response .getBody ().get ().get (1 ));
1085+ }
1086+
9871087 @ Test
9881088 void testGetByCreatorRequesteeIdPermitted () {
9891089 //create two employee-PDL relationships
0 commit comments