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 ));
@@ -95,6 +102,7 @@ public void setup() throws UserNotFoundException {
95102 when (featureProposalRepo .create (any (FeatureProposal .class ), any (Credentials .class ))).thenReturn (TEST_FEATURE_PROPOSAL1 );
96103 when (featureProposalRepo .create (any (Idea .class ))).thenReturn (TEST_FEATURE_PROPOSAL1 );
97104 when (featureProposalRepo .update (any (FeatureProposal .class ))).thenReturn (TEST_MODIFIED_FEATURE_PROPOSAL );
105+ when (featureProposalRepo .reject (TEST_FEATURE_PROPOSAL1 )).thenReturn (rejectedFeatureProposal );
98106 when (serviceRepo .findOne (any (Long .class ))).thenReturn (TEST_SERVICE );
99107 doNothing ().when (featureProposalRepo ).delete (any (FeatureProposal .class ));
100108 doNothing ().when (featureProposalRepo ).delete (any (FeatureProposal .class ));
@@ -141,6 +149,14 @@ public void testUpdate() {
141149 assertEquals ("Notification Author was not properly updated" , TEST_MODIFIED_FEATURE_PROPOSAL .getAuthor (), featureProposal .getAuthor ());
142150 }
143151
152+ @ Test
153+ public void testReject () {
154+ response = featureProposalController .reject (featureProposalWithFeedback );
155+ assertEquals ("Not successful at rejecting feature proposal" , SUCCESS , response .getMeta ().getStatus ());
156+ FeatureProposal featureProposal = (FeatureProposal ) response .getPayload ().get ("FeatureProposal" );
157+ assertEquals ("State was not set to Rejected" , rejectedFeatureProposal .getState (), featureProposal .getState ());
158+ }
159+
144160 @ Test
145161 public void testRemove () {
146162 response = featureProposalController .remove (TEST_MODIFIED_FEATURE_PROPOSAL );
0 commit comments