1717import edu .tamu .app .enums .Role ;
1818import edu .tamu .app .enums .Status ;
1919import edu .tamu .app .exception .UserNotFoundException ;
20+ import edu .tamu .app .model .repo .FeatureProposalRepo ;
2021import edu .tamu .app .model .repo .IdeaRepo ;
2122import edu .tamu .app .model .repo .ServiceRepo ;
2223import edu .tamu .app .model .repo .UserRepo ;
@@ -38,6 +39,10 @@ public class IdeaTest {
3839 private static final Boolean TEST_IS_PUBLIC = true ;
3940 private static final Boolean TEST_ON_SHORT_LIST = true ;
4041 private static final Status TEST_SERVICE_STATUS = Status .UP ;
42+
43+ private static final String TEST_FEATURE_PROPOSAL_TITLE = "Feature Proposal Title" ;
44+ private static final String TEST_FEATURE_PROPOSAL_DESCRIPTION = "Test Feature Proposal Description" ;
45+
4146 private Service service1 ;
4247 private Service service2 ;
4348
@@ -54,21 +59,27 @@ public class IdeaTest {
5459
5560 private Idea testIdea ;
5661
62+ private FeatureProposal testFeatureProposal ;
63+
5764 @ Autowired
5865 private IdeaRepo ideaRepo ;
5966
6067 @ Autowired
6168 private ServiceRepo serviceRepo ;
6269
6370 @ Autowired
64- private UserRepo appUserRepo ;
71+ private UserRepo userRepo ;
72+
73+ @ Autowired
74+ private FeatureProposalRepo featureProposalRepo ;
6575
6676 @ Before
6777 public void setUp () throws UserNotFoundException {
68- testUser = appUserRepo .create (TEST_CREDENTIALS .getUin (), TEST_CREDENTIALS .getEmail (), TEST_CREDENTIALS .getFirstName (), TEST_CREDENTIALS .getLastName (), Role .valueOf (TEST_CREDENTIALS .getRole ()));
78+ testUser = userRepo .create (TEST_CREDENTIALS .getUin (), TEST_CREDENTIALS .getEmail (), TEST_CREDENTIALS .getFirstName (), TEST_CREDENTIALS .getLastName (), Role .valueOf (TEST_CREDENTIALS .getRole ()));
6979 service1 = serviceRepo .create (new Service (TEST_SERVICE_NAME , TEST_SERVICE_STATUS , TEST_IS_AUTO , TEST_IS_PUBLIC , TEST_ON_SHORT_LIST , TEST_SERVICE_URL , TEST_DESCRIPTION ));
7080 service2 = serviceRepo .create (new Service (TEST_ALTERNATIVE_SERVICE_NAME , TEST_SERVICE_STATUS , TEST_IS_AUTO , TEST_IS_PUBLIC , TEST_ON_SHORT_LIST , TEST_SERVICE_URL , TEST_DESCRIPTION ));
7181 testIdea = ideaRepo .create (new Idea (TEST_IDEA_TITLE , TEST_IDEA_DESCRIPTION , testUser , service1 ), TEST_CREDENTIALS );
82+ testFeatureProposal = featureProposalRepo .create (new FeatureProposal (TEST_FEATURE_PROPOSAL_TITLE , TEST_FEATURE_PROPOSAL_DESCRIPTION , testUser , service1 ), TEST_CREDENTIALS );
7283 }
7384
7485 @ Test
@@ -120,6 +131,19 @@ public void testUpdateDescription() throws UserNotFoundException {
120131 assertEquals ("Idea body not updated" , TEST_ALTERNATIVE_IDEA_DESCRIPTION , idea .getDescription ());
121132 }
122133
134+ @ Test
135+ public void testUpdateFeatureProposal () throws UserNotFoundException {
136+ Idea idea = ideaRepo .create (testIdea , TEST_CREDENTIALS );
137+ testFeatureProposal .addIdea (idea );
138+ testFeatureProposal = featureProposalRepo .save (testFeatureProposal );
139+ idea .setFeatureProposal (testFeatureProposal );
140+ idea = ideaRepo .save (idea );
141+
142+ assertEquals ("Idea does not have feature proposal" , testFeatureProposal , idea .getFeatureProposal ());
143+ assertEquals ("Feature proposal does not have expedted number of ideas" , 1 , testFeatureProposal .getIdeas ().size ());
144+ assertEquals ("Feature proposal does not have idea" , idea , testFeatureProposal .getIdeas ().get (0 ));
145+ }
146+
123147 @ Test
124148 public void testTimestampSetOnCreate () throws UserNotFoundException {
125149 Idea Idea = ideaRepo .create (testIdea , TEST_CREDENTIALS );
@@ -146,17 +170,27 @@ public void testTimestampSetOnUpdate() throws InterruptedException, UserNotFound
146170 @ Test
147171 public void testDelete () throws UserNotFoundException {
148172 long initalCount = ideaRepo .count ();
149- Idea Idea = ideaRepo .create (new Idea (TEST_ALTERNATIVE_IDEA_TITLE , TEST_ALTERNATIVE_IDEA_DESCRIPTION , testUser , service2 ), TEST_CREDENTIALS );
173+ Idea idea = ideaRepo .create (new Idea (TEST_ALTERNATIVE_IDEA_TITLE , TEST_ALTERNATIVE_IDEA_DESCRIPTION , testUser , service2 ), TEST_CREDENTIALS );
150174 assertEquals ("Idea not created" , initalCount + 1 , ideaRepo .count ());
151- ideaRepo .delete (Idea );
175+ testFeatureProposal .addIdea (idea );
176+ testFeatureProposal = featureProposalRepo .save (testFeatureProposal );
177+ idea .setFeatureProposal (testFeatureProposal );
178+ idea = ideaRepo .save (idea );
179+
180+ assertEquals ("Idea does not have feature proposal" , testFeatureProposal , idea .getFeatureProposal ());
181+ assertEquals ("Feature proposal does not have expedted number of ideas" , 1 , testFeatureProposal .getIdeas ().size ());
182+ assertEquals ("Feature proposal does not have idea" , idea , testFeatureProposal .getIdeas ().get (0 ));
183+
184+ ideaRepo .delete (idea );
152185 assertEquals ("Idea not deleted" , initalCount , ideaRepo .count ());
153186
154187 }
155188
156189 @ After
157190 public void cleanUp () {
158191 ideaRepo .deleteAll ();
192+ featureProposalRepo .deleteAll ();
159193 serviceRepo .deleteAll ();
160- appUserRepo .deleteAll ();
194+ userRepo .deleteAll ();
161195 }
162196}
0 commit comments