@@ -22,14 +22,17 @@ public class FcCInteractorTest {
22
22
*/
23
23
@ Test
24
24
public void create_success (){
25
+ //Creating database for the test.
25
26
IFlashcardDataAccess flashcardDataAccess = new InMemoryFlashcard ();
26
27
IFlashcardSetDataAccess flashcardSetDataAccess = new InMemoryFlashcardSet ();
27
28
DBGateway gateway = new DBGateway (flashcardDataAccess , flashcardSetDataAccess , null );
28
29
30
+ //Adding flash card set with id 0 for interactor to create flashcard in.
29
31
flashcardSetDataAccess .saveFlashcardSet (new FlashcardSetDsRequestModel ("test set" ,"description" ,
30
32
true , 0 , "user" , new ArrayList <>()));
31
-
33
+ //Changed presenter for the test.
32
34
FcCOutputBoundary presenter = new FcCOutputBoundary (){
35
+ //Check if the flashcard is saved when response from interactor is successful.
33
36
@ Override
34
37
public FcCResponseModel prepareSuccessView (FcCResponseModel responseModel ){
35
38
Assertions .assertEquals (gateway .getFlashcard (0 ).getTerm (), "term" );
@@ -41,13 +44,15 @@ public FcCResponseModel prepareSuccessView(FcCResponseModel responseModel){
41
44
return null ;
42
45
}
43
46
47
+ //Errors should not happen.
44
48
@ Override
45
49
public FcCResponseModel prepareFailView (String error ){
46
50
Assertions .fail ("Unexpected Failure." );
47
51
return null ;
48
52
}
49
53
};
50
54
FcCInputBoundary interactor = new FcCInteractor (gateway , presenter );
55
+ //Valid input for flashcard.
51
56
interactor .create (new FcCRequestModel (0 , "term" , "definition" ));
52
57
}
53
58
@@ -56,27 +61,33 @@ public FcCResponseModel prepareFailView(String error){
56
61
*/
57
62
@ Test
58
63
public void create_failure_empty_term (){
64
+ //Creating database for Flashcard
59
65
IFlashcardDataAccess flashcardDataAccess = new InMemoryFlashcard ();
60
66
IFlashcardSetDataAccess flashcardSetDataAccess = new InMemoryFlashcardSet ();
61
67
DBGateway gateway = new DBGateway (flashcardDataAccess , flashcardSetDataAccess , null );
62
68
69
+ //Adding flash card set with id 0 for interactor to create flashcard in.
63
70
flashcardSetDataAccess .saveFlashcardSet (new FlashcardSetDsRequestModel ("test set" ,"description" ,
64
71
true , 0 , "user" , new ArrayList <>()));
65
72
73
+ //Changed presenter for the test.
66
74
FcCOutputBoundary presenter = new FcCOutputBoundary (){
75
+ //Success should not happen with this input.
67
76
@ Override
68
77
public FcCResponseModel prepareSuccessView (FcCResponseModel responseModel ){
69
78
Assertions .fail ("Unexpected success" );
70
79
return null ;
71
80
}
72
81
82
+ ////Check if error thrown is correct
73
83
@ Override
74
84
public FcCResponseModel prepareFailView (String error ){
75
85
Assertions .assertEquals ("Term or definition is empty." , error );
76
86
return null ;
77
87
}
78
88
};
79
89
FcCInputBoundary interactor = new FcCInteractor (gateway , presenter );
90
+ //Input with empty term.
80
91
interactor .create (new FcCRequestModel (0 , "" , "definition" ));
81
92
}
82
93
@@ -85,56 +96,175 @@ public FcCResponseModel prepareFailView(String error){
85
96
*/
86
97
@ Test
87
98
public void create_failure_empty_definition (){
99
+ //Creating data base
88
100
IFlashcardDataAccess flashcardDataAccess = new InMemoryFlashcard ();
89
101
IFlashcardSetDataAccess flashcardSetDataAccess = new InMemoryFlashcardSet ();
90
102
DBGateway gateway = new DBGateway (flashcardDataAccess , flashcardSetDataAccess , null );
91
103
104
+ //Adding test flashcard set.
92
105
flashcardSetDataAccess .saveFlashcardSet (new FlashcardSetDsRequestModel ("test set" ,"description" ,
93
106
true , 0 , "user" , new ArrayList <>()));
94
107
108
+ //Creating new response for the test.
95
109
FcCOutputBoundary presenter = new FcCOutputBoundary (){
110
+ //Success should not happen.
96
111
@ Override
97
112
public FcCResponseModel prepareSuccessView (FcCResponseModel responseModel ){
98
113
Assertions .fail ("Unexpected success" );
99
114
return null ;
100
115
}
101
116
117
+ //Check if error thrown is correct
102
118
@ Override
103
119
public FcCResponseModel prepareFailView (String error ){
104
120
Assertions .assertEquals ("Term or definition is empty." , error );
105
121
return null ;
106
122
}
107
123
};
108
124
FcCInputBoundary interactor = new FcCInteractor (gateway , presenter );
125
+ //Input with empty definition.
109
126
interactor .create (new FcCRequestModel (0 , "term" , "" ));
110
127
}
111
128
112
129
/**
113
130
* Test for Creation of flashcard with non-existing flashcard set.
114
131
*/
115
132
@ Test
116
- public void create_failure_no_flashcard_set (){
133
+ public void create_failure_no_flashcard_set () {
134
+ //Creating database
117
135
IFlashcardDataAccess flashcardDataAccess = new InMemoryFlashcard ();
118
136
IFlashcardSetDataAccess flashcardSetDataAccess = new InMemoryFlashcardSet ();
119
137
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
+ }
120
160
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.
121
171
flashcardSetDataAccess .saveFlashcardSet (new FlashcardSetDsRequestModel ("test set" ,"description" ,
122
172
true , 0 , "user" , new ArrayList <>()));
123
173
174
+ //Creating presenter for test.
124
175
FcCOutputBoundary presenter = new FcCOutputBoundary (){
176
+ //Success should not happen.
125
177
@ Override
126
178
public FcCResponseModel prepareSuccessView (FcCResponseModel responseModel ){
127
179
Assertions .fail ("Unexpected success" );
128
180
return null ;
129
181
}
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
+ }
130
219
220
+ //Errors should not happen.
131
221
@ Override
132
222
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\n term" , "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." );
134
263
return null ;
135
264
}
136
265
};
137
266
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\n definition" ));
139
269
}
140
270
}
0 commit comments