2323import org .springframework .messaging .simp .SimpMessagingTemplate ;
2424import org .springframework .test .context .junit4 .SpringRunner ;
2525
26+ import edu .tamu .app .enums .FeatureProposalState ;
2627import edu .tamu .app .enums .Status ;
2728import edu .tamu .app .exception .UserNotFoundException ;
2829import edu .tamu .app .model .FeatureProposal ;
@@ -52,15 +53,19 @@ public class FeatureProposalControllerTest {
5253 private static final String TEST_MODIFIED_FEATURE_PROPOSAL_TITLE = "Modified Feature Proposal Title" ;
5354 private static final String TEST_MODIFIED_FEATURE_PROPOSAL_DESCRIPTION = "Modified Feature Proposal Description" ;
5455 private static final String TEST_SERVICE_NAME = "Test Service" ;
56+ private static final String TEST_FEEDBACK = "Test Rejection Feedback" ;
5557
5658 private static Service TEST_SERVICE = new Service (TEST_SERVICE_NAME , Status .UP , false , true , true , "" , "" );
5759 private static FeatureProposal TEST_FEATURE_PROPOSAL1 = new FeatureProposal (TEST_FEATURE_PROPOSAL_TITLE1 , TEST_FEATURE_PROPOSAL_DESCRIPTION1 , TEST_USER1 );
5860 private static FeatureProposal TEST_FEATURE_PROPOSAL2 = new FeatureProposal (TEST_FEATURE_PROPOSAL_TITLE2 , TEST_FEATURE_PROPOSAL_DESCRIPTION2 , TEST_USER1 );
5961 private static FeatureProposal TEST_FEATURE_PROPOSAL3 = new FeatureProposal (TEST_FEATURE_PROPOSAL_TITLE3 , TEST_FEATURE_PROPOSAL_DESCRIPTION3 , TEST_USER1 );
6062 private static FeatureProposal TEST_MODIFIED_FEATURE_PROPOSAL = new FeatureProposal (TEST_MODIFIED_FEATURE_PROPOSAL_TITLE , TEST_MODIFIED_FEATURE_PROPOSAL_DESCRIPTION , TEST_USER2 , TEST_SERVICE );
63+ private static FeatureProposal featureProposalWithFeedback = new FeatureProposal (TEST_FEATURE_PROPOSAL_TITLE1 , TEST_FEATURE_PROPOSAL_DESCRIPTION1 , TEST_USER1 );
6164 private static List <FeatureProposal > mockFeatureProposalList = new ArrayList <FeatureProposal >(Arrays .asList (new FeatureProposal [] { TEST_FEATURE_PROPOSAL1 , TEST_FEATURE_PROPOSAL2 , TEST_FEATURE_PROPOSAL3 }));
6265 private static Page <FeatureProposal > mockPageableFeatureProposalList = new PageImpl <FeatureProposal >(Arrays .asList (new FeatureProposal [] { TEST_FEATURE_PROPOSAL1 , TEST_FEATURE_PROPOSAL2 , TEST_FEATURE_PROPOSAL3 }));
6366
67+ private FeatureProposal rejectedFeatureProposal = new FeatureProposal (TEST_FEATURE_PROPOSAL_TITLE1 , TEST_FEATURE_PROPOSAL_DESCRIPTION1 , TEST_USER1 );
68+
6469 private static User user = new User ("123456789" );
6570
6671 private static ApiResponse response ;
@@ -86,6 +91,8 @@ public class FeatureProposalControllerTest {
8691 @ Before
8792 @ SuppressWarnings ("unchecked" )
8893 public void setup () throws UserNotFoundException {
94+ rejectedFeatureProposal .setState (FeatureProposalState .REJECTED );
95+ featureProposalWithFeedback .setFeedback (TEST_FEEDBACK );
8996 MockitoAnnotations .initMocks (this );
9097 when (credentials .getUin ()).thenReturn ("123456789" );
9198 when (userRepo .findByUsername (any (String .class ))).thenReturn (Optional .of (user ));
@@ -141,6 +148,14 @@ public void testUpdate() {
141148 assertEquals ("Notification Author was not properly updated" , TEST_MODIFIED_FEATURE_PROPOSAL .getAuthor (), featureProposal .getAuthor ());
142149 }
143150
151+ @ Test
152+ public void testReject () {
153+ response = featureProposalController .reject (featureProposalWithFeedback );
154+ assertEquals ("Not successful at rejecting feature proposal" , SUCCESS , response .getMeta ().getStatus ());
155+ FeatureProposal featureProposal = (FeatureProposal ) response .getPayload ().get ("FeatureProposal" );
156+ assertEquals ("State was not set to Rejected" , rejectedFeatureProposal .getState (), featureProposal .getState ());
157+ }
158+
144159 @ Test
145160 public void testRemove () {
146161 response = featureProposalController .remove (TEST_MODIFIED_FEATURE_PROPOSAL );
0 commit comments