Skip to content

Commit 758d016

Browse files
authored
Merge pull request #81 from CSC207-2022F-UofT/feature-5-flashcard-creator-and-remover
Feature 5 flashcard creator and remover new
2 parents 36db5bf + f1f5d64 commit 758d016

File tree

4 files changed

+155
-16
lines changed

4 files changed

+155
-16
lines changed

src/main/java/create_flashcard_use_case/FcCInteractor.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,9 @@ public FcCResponseModel create(FcCRequestModel requestModel) {
4040
return presenter.prepareFailView("Flashcard set does not exist.");
4141
}
4242
LocalDateTime creationDate = LocalDateTime.now();
43-
FlashcardDsRequestModel flashcard = new FlashcardDsRequestModel(requestModel.getTerm(),
44-
requestModel.getDefinition(), creationDate,-1, requestModel.getFlashcardSetId());
43+
FlashcardDsRequestModel flashcard = new FlashcardDsRequestModel(
44+
requestModel.getTerm().replace("\n", " "),
45+
requestModel.getDefinition().replace("\n", " "), creationDate,-1, requestModel.getFlashcardSetId());
4546
int flashcardId = fcDataAccess.saveFlashcard(flashcard);
4647
fcsDataAccess.saveFlashcardID(requestModel.getFlashcardSetId(), flashcardId);
4748

src/main/java/create_flashcard_use_case/fcCScreens/FcCScreen.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ public FcCScreen(FcCController controller, JFrame fcCMain){
6565
public void actionPerformed(ActionEvent e) {
6666
try{
6767
//Success view.
68-
FcCResponseModel responseModel = controller.create(term_text.getText().replace("\n", ""),
69-
definition_text.getText().replace("\n", ""));
68+
FcCResponseModel responseModel = controller.create(term_text.getText().replace("\n", " "),
69+
definition_text.getText().replace("\n", " "));
7070
int action = JOptionPane.showConfirmDialog(this,
7171
"Card created:\n"+responseModel.getTerm()+ "\n" + responseModel.getDefinition()
7272
+"\ncreate another card?");

src/test/java/create_flashcard_use_case/FcCInteractorTest.java

Lines changed: 134 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,17 @@ public class FcCInteractorTest {
2222
*/
2323
@Test
2424
public void create_success(){
25+
//Creating database for the test.
2526
IFlashcardDataAccess flashcardDataAccess = new InMemoryFlashcard();
2627
IFlashcardSetDataAccess flashcardSetDataAccess = new InMemoryFlashcardSet();
2728
DBGateway gateway = new DBGateway(flashcardDataAccess, flashcardSetDataAccess, null);
2829

30+
//Adding flash card set with id 0 for interactor to create flashcard in.
2931
flashcardSetDataAccess.saveFlashcardSet(new FlashcardSetDsRequestModel("test set","description",
3032
true, 0, "user", new ArrayList<>()));
31-
33+
//Changed presenter for the test.
3234
FcCOutputBoundary presenter = new FcCOutputBoundary(){
35+
//Check if the flashcard is saved when response from interactor is successful.
3336
@Override
3437
public FcCResponseModel prepareSuccessView(FcCResponseModel responseModel){
3538
Assertions.assertEquals(gateway.getFlashcard(0).getTerm(), "term");
@@ -41,13 +44,15 @@ public FcCResponseModel prepareSuccessView(FcCResponseModel responseModel){
4144
return null;
4245
}
4346

47+
//Errors should not happen.
4448
@Override
4549
public FcCResponseModel prepareFailView(String error){
4650
Assertions.fail("Unexpected Failure.");
4751
return null;
4852
}
4953
};
5054
FcCInputBoundary interactor = new FcCInteractor(gateway, presenter);
55+
//Valid input for flashcard.
5156
interactor.create(new FcCRequestModel(0, "term", "definition"));
5257
}
5358

@@ -56,27 +61,33 @@ public FcCResponseModel prepareFailView(String error){
5661
*/
5762
@Test
5863
public void create_failure_empty_term(){
64+
//Creating database for Flashcard
5965
IFlashcardDataAccess flashcardDataAccess = new InMemoryFlashcard();
6066
IFlashcardSetDataAccess flashcardSetDataAccess = new InMemoryFlashcardSet();
6167
DBGateway gateway = new DBGateway(flashcardDataAccess, flashcardSetDataAccess, null);
6268

69+
//Adding flash card set with id 0 for interactor to create flashcard in.
6370
flashcardSetDataAccess.saveFlashcardSet(new FlashcardSetDsRequestModel("test set","description",
6471
true, 0, "user", new ArrayList<>()));
6572

73+
//Changed presenter for the test.
6674
FcCOutputBoundary presenter = new FcCOutputBoundary(){
75+
//Success should not happen with this input.
6776
@Override
6877
public FcCResponseModel prepareSuccessView(FcCResponseModel responseModel){
6978
Assertions.fail("Unexpected success");
7079
return null;
7180
}
7281

82+
////Check if error thrown is correct
7383
@Override
7484
public FcCResponseModel prepareFailView(String error){
7585
Assertions.assertEquals("Term or definition is empty.", error);
7686
return null;
7787
}
7888
};
7989
FcCInputBoundary interactor = new FcCInteractor(gateway, presenter);
90+
//Input with empty term.
8091
interactor.create(new FcCRequestModel(0, "", "definition"));
8192
}
8293

@@ -85,56 +96,175 @@ public FcCResponseModel prepareFailView(String error){
8596
*/
8697
@Test
8798
public void create_failure_empty_definition(){
99+
//Creating data base
88100
IFlashcardDataAccess flashcardDataAccess = new InMemoryFlashcard();
89101
IFlashcardSetDataAccess flashcardSetDataAccess = new InMemoryFlashcardSet();
90102
DBGateway gateway = new DBGateway(flashcardDataAccess, flashcardSetDataAccess, null);
91103

104+
//Adding test flashcard set.
92105
flashcardSetDataAccess.saveFlashcardSet(new FlashcardSetDsRequestModel("test set","description",
93106
true, 0, "user", new ArrayList<>()));
94107

108+
//Creating new response for the test.
95109
FcCOutputBoundary presenter = new FcCOutputBoundary(){
110+
//Success should not happen.
96111
@Override
97112
public FcCResponseModel prepareSuccessView(FcCResponseModel responseModel){
98113
Assertions.fail("Unexpected success");
99114
return null;
100115
}
101116

117+
//Check if error thrown is correct
102118
@Override
103119
public FcCResponseModel prepareFailView(String error){
104120
Assertions.assertEquals("Term or definition is empty.", error);
105121
return null;
106122
}
107123
};
108124
FcCInputBoundary interactor = new FcCInteractor(gateway, presenter);
125+
//Input with empty definition.
109126
interactor.create(new FcCRequestModel(0, "term", ""));
110127
}
111128

112129
/**
113130
* Test for Creation of flashcard with non-existing flashcard set.
114131
*/
115132
@Test
116-
public void create_failure_no_flashcard_set(){
133+
public void create_failure_no_flashcard_set() {
134+
//Creating database
117135
IFlashcardDataAccess flashcardDataAccess = new InMemoryFlashcard();
118136
IFlashcardSetDataAccess flashcardSetDataAccess = new InMemoryFlashcardSet();
119137
DBGateway gateway = new DBGateway(flashcardDataAccess, flashcardSetDataAccess, null);
138+
//No testing flashcard set.
139+
140+
//Creating presenter for test.
141+
FcCOutputBoundary presenter = new FcCOutputBoundary() {
142+
//Success should not happen.
143+
@Override
144+
public FcCResponseModel prepareSuccessView(FcCResponseModel responseModel) {
145+
Assertions.fail("Unexpected success");
146+
return null;
147+
}
148+
149+
//Check if error thrown is correct.
150+
@Override
151+
public FcCResponseModel prepareFailView(String error) {
152+
Assertions.assertEquals("Flashcard set does not exist.", error);
153+
return null;
154+
}
155+
};
156+
FcCInputBoundary interactor = new FcCInteractor(gateway, presenter);
157+
//Flashcard creation.
158+
interactor.create(new FcCRequestModel(0, "term", "definition"));
159+
}
120160

161+
/**
162+
* Test for Creation of flashcard with empty term and definition.
163+
*/
164+
@Test
165+
public void create_failure_empty_term_and_definition(){
166+
//Creating database
167+
IFlashcardDataAccess flashcardDataAccess = new InMemoryFlashcard();
168+
IFlashcardSetDataAccess flashcardSetDataAccess = new InMemoryFlashcardSet();
169+
DBGateway gateway = new DBGateway(flashcardDataAccess, flashcardSetDataAccess, null);
170+
//Adding testing flashcard set.
121171
flashcardSetDataAccess.saveFlashcardSet(new FlashcardSetDsRequestModel("test set","description",
122172
true, 0, "user", new ArrayList<>()));
123173

174+
//Creating presenter for test.
124175
FcCOutputBoundary presenter = new FcCOutputBoundary(){
176+
//Success should not happen.
125177
@Override
126178
public FcCResponseModel prepareSuccessView(FcCResponseModel responseModel){
127179
Assertions.fail("Unexpected success");
128180
return null;
129181
}
182+
//Check if error thrown is correct.
183+
@Override
184+
public FcCResponseModel prepareFailView(String error){
185+
Assertions.assertEquals("Term or definition is empty.", error);
186+
return null;
187+
}
188+
};
189+
FcCInputBoundary interactor = new FcCInteractor(gateway, presenter);
190+
//Input with empty term and definition.
191+
interactor.create(new FcCRequestModel(-1, "", ""));
192+
}
193+
/**
194+
* Test for creation of valid flashcard with term of multiple lines.
195+
*/
196+
@Test
197+
public void create_success_multiple_lines_term(){
198+
//Creating database for the test.
199+
IFlashcardDataAccess flashcardDataAccess = new InMemoryFlashcard();
200+
IFlashcardSetDataAccess flashcardSetDataAccess = new InMemoryFlashcardSet();
201+
DBGateway gateway = new DBGateway(flashcardDataAccess, flashcardSetDataAccess, null);
202+
203+
//Adding flash card set with id 0 for interactor to create flashcard in.
204+
flashcardSetDataAccess.saveFlashcardSet(new FlashcardSetDsRequestModel("test set","description",
205+
true, 0, "user", new ArrayList<>()));
206+
//Changed presenter for the test.
207+
FcCOutputBoundary presenter = new FcCOutputBoundary(){
208+
//Check if the flashcard is saved when response from interactor is successful.
209+
@Override
210+
public FcCResponseModel prepareSuccessView(FcCResponseModel responseModel){
211+
Assertions.assertEquals(gateway.getFlashcard(0).getTerm(), "term term");
212+
Assertions.assertEquals(gateway.getFlashcard(0).getDefinition(), "definition");
213+
List<Integer> ids = new ArrayList<>();
214+
ids.add(0);
215+
Assertions.assertEquals(gateway.getFlashcardSet(0).getFlashcardIds(),
216+
ids);
217+
return null;
218+
}
130219

220+
//Errors should not happen.
131221
@Override
132222
public FcCResponseModel prepareFailView(String error){
133-
Assertions.assertEquals("Flashcard set does not exist.", error);
223+
Assertions.fail("Unexpected Failure.");
224+
return null;
225+
}
226+
};
227+
FcCInputBoundary interactor = new FcCInteractor(gateway, presenter);
228+
//Input with multiple lines.
229+
interactor.create(new FcCRequestModel(0, "term\nterm", "definition"));
230+
}
231+
/**
232+
* Test for creation of valid flashcard with definition of multiple lines.
233+
*/
234+
@Test
235+
public void create_success_multiple_lines_definition(){
236+
//Creating database for the test.
237+
IFlashcardDataAccess flashcardDataAccess = new InMemoryFlashcard();
238+
IFlashcardSetDataAccess flashcardSetDataAccess = new InMemoryFlashcardSet();
239+
DBGateway gateway = new DBGateway(flashcardDataAccess, flashcardSetDataAccess, null);
240+
241+
//Adding flash card set with id 0 for interactor to create flashcard in.
242+
flashcardSetDataAccess.saveFlashcardSet(new FlashcardSetDsRequestModel("test set","description",
243+
true, 0, "user", new ArrayList<>()));
244+
//Changed presenter for the test.
245+
FcCOutputBoundary presenter = new FcCOutputBoundary(){
246+
//Check if the flashcard is saved when response from interactor is successful.
247+
@Override
248+
public FcCResponseModel prepareSuccessView(FcCResponseModel responseModel){
249+
Assertions.assertEquals(gateway.getFlashcard(0).getTerm(), "term");
250+
Assertions.assertEquals(gateway.getFlashcard(0).getDefinition(),
251+
"definition definition");
252+
List<Integer> ids = new ArrayList<>();
253+
ids.add(0);
254+
Assertions.assertEquals(gateway.getFlashcardSet(0).getFlashcardIds(),
255+
ids);
256+
return null;
257+
}
258+
259+
//Errors should not happen.
260+
@Override
261+
public FcCResponseModel prepareFailView(String error){
262+
Assertions.fail("Unexpected Failure.");
134263
return null;
135264
}
136265
};
137266
FcCInputBoundary interactor = new FcCInteractor(gateway, presenter);
138-
interactor.create(new FcCRequestModel(-1, "term", "definition"));
267+
//Input with multiple lines.
268+
interactor.create(new FcCRequestModel(0, "term", "definition\ndefinition"));
139269
}
140270
}

src/test/java/delete_flashcard_use_case/FcRInteractorTest.java

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,15 @@ public class FcRInteractorTest {
2222
*/
2323
@Test
2424
public void delete_success(){
25+
//Creating database for test.
2526
IFlashcardDataAccess flashcardDataAccess = new InMemoryFlashcard();
2627
IFlashcardSetDataAccess flashcardSetDataAccess = new InMemoryFlashcardSet();
2728
DBGateway gateway = new DBGateway(flashcardDataAccess, flashcardSetDataAccess, null);
2829
flashcardSetDataAccess.saveFlashcardSet(new FlashcardSetDsRequestModel("title",
2930
"description", true, 0,"User", new ArrayList<>()));
3031
gateway.saveFlashcard(new FlashcardDsRequestModel("term", "definition",
3132
LocalDateTime.now(), 0,0));
33+
//Creating presenter for test.
3234
FcROutputBoundary presenter = new FcRResponsePresenter(){
3335
@Override
3436
public FcRResponseModel prepareSuccessView(FcRResponseModel responseModel){
@@ -54,11 +56,13 @@ public FcRResponseModel prepareFailView(String error){
5456
*/
5557
@Test
5658
public void delete_failure_no_flashcard(){
59+
//Creating database for test.
5760
IFlashcardDataAccess flashcardDataAccess = new InMemoryFlashcard();
5861
IFlashcardSetDataAccess flashcardSetDataAccess = new InMemoryFlashcardSet();
5962
DBGateway gateway = new DBGateway(flashcardDataAccess, flashcardSetDataAccess, null);
6063
flashcardSetDataAccess.saveFlashcardSet(new FlashcardSetDsRequestModel("title",
6164
"description", true, 0,"User", new ArrayList<>()));
65+
//Creating presenter for test.
6266
FcROutputBoundary presenter = new FcRResponsePresenter(){
6367
@Override
6468
public FcRResponseModel prepareSuccessView(FcRResponseModel responseModel){
@@ -81,13 +85,15 @@ public FcRResponseModel prepareFailView(String error){
8185
*/
8286
@Test
8387
public void delete_failure_no_flashcard_set(){
88+
//Creating database for test.
8489
IFlashcardDataAccess flashcardDataAccess = new InMemoryFlashcard();
8590
IFlashcardSetDataAccess flashcardSetDataAccess = new InMemoryFlashcardSet();
8691
DBGateway gateway = new DBGateway(flashcardDataAccess, flashcardSetDataAccess, null);
8792
flashcardSetDataAccess.saveFlashcardSet(new FlashcardSetDsRequestModel("title",
8893
"description", true, 1,"User", new ArrayList<>()));
8994
gateway.saveFlashcard(new FlashcardDsRequestModel("term", "definition",
9095
LocalDateTime.now(), 0,1));
96+
//Creating presenter for test.
9197
FcROutputBoundary presenter = new FcRResponsePresenter(){
9298
@Override
9399
public FcRResponseModel prepareSuccessView(FcRResponseModel responseModel){
@@ -109,30 +115,32 @@ public FcRResponseModel prepareFailView(String error){
109115
* Test deletion for delete request with existing flashcard, but not in flashcard set.
110116
*/
111117
@Test
112-
public void delete_failure_flashcard_not_in_flashcard_set(){
118+
public void delete_failure_flashcard_not_in_flashcard_set() {
119+
//Creating database for test.
113120
IFlashcardDataAccess flashcardDataAccess = new InMemoryFlashcard();
114121
IFlashcardSetDataAccess flashcardSetDataAccess = new InMemoryFlashcardSet();
115122
DBGateway gateway = new DBGateway(flashcardDataAccess, flashcardSetDataAccess, null);
116123
flashcardSetDataAccess.saveFlashcardSet(new FlashcardSetDsRequestModel("title",
117-
"description", true, 0,"User", new ArrayList<>()));
124+
"description", true, 0, "User", new ArrayList<>()));
118125
flashcardSetDataAccess.saveFlashcardSet(new FlashcardSetDsRequestModel("title",
119-
"description", true, 1,"User", new ArrayList<>()));
126+
"description", true, 1, "User", new ArrayList<>()));
120127
gateway.saveFlashcard(new FlashcardDsRequestModel("term", "definition",
121-
LocalDateTime.now(), 0,1));
122-
FcROutputBoundary presenter = new FcRResponsePresenter(){
128+
LocalDateTime.now(), 0, 1));
129+
//Creating presenter for test.
130+
FcROutputBoundary presenter = new FcRResponsePresenter() {
123131
@Override
124-
public FcRResponseModel prepareSuccessView(FcRResponseModel responseModel){
132+
public FcRResponseModel prepareSuccessView(FcRResponseModel responseModel) {
125133
Assertions.fail("Unexpected success.");
126134
return null;
127135
}
128136

129137
@Override
130-
public FcRResponseModel prepareFailView(String error){
138+
public FcRResponseModel prepareFailView(String error) {
131139
Assertions.assertEquals("Flashcard not in this flashcard set.", error);
132140
return null;
133141
}
134142
};
135143
FcRInputBoundary interactor = new FcRInteractor(gateway, presenter);
136-
interactor.delete(new FcRRequestModel(0,0));
144+
interactor.delete(new FcRRequestModel(0, 0));
137145
}
138146
}

0 commit comments

Comments
 (0)