Skip to content

Commit 53c2bc0

Browse files
test cases
1 parent 659009c commit 53c2bc0

File tree

6 files changed

+132
-9
lines changed

6 files changed

+132
-9
lines changed

src/main/java/Main.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public static void main(String[] args) throws IOException {
2626

2727
DBGateway gateway = new DBGateway(flashcardGateway, flashcardSetGateway, userGateway);
2828

29-
//Welcome Screen
29+
// WELCOME SCREEN
3030
JFrame application = new JFrame("Welcome");
3131
CardLayout cardLayout = new CardLayout();
3232
JPanel screens = new JPanel(cardLayout);
@@ -36,12 +36,5 @@ public static void main(String[] args) throws IOException {
3636
cardLayout.show(screens, "Welcome");
3737
application.pack();
3838
application.setVisible(true);
39-
40-
// QUIZ SETTINGS USE CASE
41-
QuizOutputBoundary presenter = new QuizPresenter();
42-
QuizInputBoundary interactor = new QuizInteractor(gateway, presenter);
43-
QuizController controller = new QuizController(interactor);
44-
45-
new QuizSettingsScreen(controller, 0);
4639
}
4740
}

src/main/java/quizUseCase/QuizSettingsResponseModel.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,10 @@
88
* @author Anthony
99
*/
1010
public class QuizSettingsResponseModel {
11-
// information
11+
// information 1
1212
private int numFlashcards;
13+
14+
// information 2
1315
private ArrayList<String> types;
1416
private ArrayList<ArrayList<String>> outputText;
1517

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
package quizUseCase;
2+
3+
import dataAccess.*;
4+
import static org.junit.jupiter.api.Assertions.*;
5+
import org.junit.jupiter.api.Test;
6+
7+
import java.io.IOException;
8+
import java.util.ArrayList;
9+
10+
public class QuizUseCaseTest {
11+
QuizController controller;
12+
13+
QuizSettingsRequestModel setup(int numQuestions, boolean timerOn, int timerDuration,
14+
boolean multipleChoiceOn, boolean textEntryOn, boolean trueFalseOn,
15+
int flashcardSetID) throws IOException {
16+
IFlashcardDataAccess flashcardGateway = new FlashcardDataAccess(
17+
"src/test/java/quizUseCase/testData/Flashcards.csv");
18+
IFlashcardSetDataAccess flashcardSetGateway = new FlashcardSetDataAccess(
19+
"src/test/java/quizUseCase/testData/FlashcardSets.csv");
20+
IUserDataAccess userGateway = new CommonUserDataAccess(
21+
"src/test/java/quizUseCase/testData/Users.csv");
22+
23+
DBGateway gateway = new DBGateway(flashcardGateway, flashcardSetGateway, userGateway);
24+
25+
QuizOutputBoundary presenter = new QuizPresenter();
26+
QuizInputBoundary interactor = new QuizInteractor(gateway, presenter);
27+
this.controller = new QuizController(interactor);
28+
29+
return new QuizSettingsRequestModel(numQuestions, timerOn,
30+
timerDuration, multipleChoiceOn, textEntryOn, trueFalseOn, flashcardSetID);
31+
}
32+
33+
@Test
34+
void testOnlyMultipleChoice() throws IOException {
35+
QuizSettingsRequestModel quizSettingsRequestModel = this.setup(10, false, 0,
36+
true, false, false, 0);
37+
38+
QuizSettingsResponseModel quizSettingsResponseModel = controller.startQuiz(quizSettingsRequestModel);
39+
assertFalse(quizSettingsResponseModel.isFailed());
40+
41+
ArrayList<String> types = quizSettingsResponseModel.getTypes();
42+
ArrayList<ArrayList<String>> outputText = quizSettingsResponseModel.getOutputText();
43+
44+
assertEquals(10, types.size());
45+
assertEquals(10, outputText.size());
46+
assertTrue(types.contains("MC"));
47+
assertFalse(types.contains("TE"));
48+
assertFalse(types.contains("TF"));
49+
50+
ArrayList<String> userAnswers = new ArrayList<>();
51+
for (int i = 0; i < 10; i++) {
52+
userAnswers.add("incorrect answer");
53+
}
54+
QuizRequestModel quizRequestModel = new QuizRequestModel(userAnswers);
55+
QuizResponseModel quizResponseModel = controller.getResults(quizRequestModel);
56+
57+
assertFalse(quizResponseModel.isFailed());
58+
59+
assertEquals(0, quizResponseModel.getScore());
60+
assertEquals(10, quizResponseModel.getNumQuestions());
61+
}
62+
63+
@Test
64+
void testAllOptionsEnabled() throws IOException {
65+
QuizSettingsRequestModel quizSettingsRequestModel = this.setup(12, false, 0,
66+
true, true, true, 0);
67+
68+
QuizSettingsResponseModel quizSettingsResponseModel = controller.startQuiz(quizSettingsRequestModel);
69+
assertFalse(quizSettingsResponseModel.isFailed());
70+
71+
ArrayList<String> types = quizSettingsResponseModel.getTypes();
72+
ArrayList<ArrayList<String>> outputText = quizSettingsResponseModel.getOutputText();
73+
74+
assertEquals(12, types.size());
75+
assertEquals(12, outputText.size());
76+
assertTrue(types.contains("MC"));
77+
assertTrue(types.contains("TE"));
78+
assertTrue(types.contains("TF"));
79+
80+
ArrayList<String> userAnswers = new ArrayList<>();
81+
for (int i = 0; i < 12; i++) {
82+
userAnswers.add("incorrect answer");
83+
}
84+
QuizRequestModel quizRequestModel = new QuizRequestModel(userAnswers);
85+
QuizResponseModel quizResponseModel = controller.getResults(quizRequestModel);
86+
87+
assertFalse(quizResponseModel.isFailed());
88+
89+
assertEquals(0, quizResponseModel.getScore());
90+
assertEquals(12, quizResponseModel.getNumQuestions());
91+
}
92+
93+
@Test
94+
void testNoOptionsEnabled() throws IOException {
95+
QuizSettingsRequestModel quizSettingsRequestModel = this.setup(12, false, 0,
96+
false, false, false, 0);
97+
98+
QuizSettingsResponseModel quizSettingsResponseModel = controller.startQuiz(quizSettingsRequestModel);
99+
assertTrue(quizSettingsResponseModel.isFailed());
100+
}
101+
102+
@Test
103+
void testRidiculousTimer() throws IOException {
104+
QuizSettingsRequestModel quizSettingsRequestModel = this.setup(12, true, 0,
105+
true, true, false, 0);
106+
107+
QuizSettingsResponseModel quizSettingsResponseModel = controller.startQuiz(quizSettingsRequestModel);
108+
assertTrue(quizSettingsResponseModel.isFailed());
109+
}
110+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
title, description, privacy, id, owner, flashcardsIds
2+
test set,for testing study use case,true,0,testUser,0,1,2,3,4,5,6,7,8,9,10,11
3+
empty test set,for testing study use case with empty set,true,1,testUser,
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
term, definition, creationDate, flashcardId, belongsToId
2+
Term A,Definition A,2022-11-13T15:32:26.666982800,0,0
3+
Term B,Definition B,2022-11-13T15:32:27.666982800,1,0
4+
Term C,Definition C,2022-11-13T15:32:28.666982800,2,0
5+
Term D,Definition D,2022-11-13T15:32:29.666982800,3,0
6+
Term E,Definition E,2022-11-13T15:32:29.666982800,4,0
7+
Term F,Definition F,2022-11-13T15:32:29.666982800,5,0
8+
Term G,Definition G,2022-11-13T15:32:29.666982800,6,0
9+
Term H,Definition H,2022-11-13T15:32:29.666982800,7,0
10+
Term I,Definition I,2022-11-13T15:32:29.666982800,8,0
11+
Term J,Definition J,2022-11-13T15:32:29.666982800,9,0
12+
Same Term,Same Definition,2022-11-13T15:32:29.666982800,10,0
13+
Same Term,Same Definition,2022-11-13T15:32:29.666982800,11,0
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
username,password,isAdmin,flashcardSetsIds
2+
testUser,456r2t17yuihjn@,false,0,1

0 commit comments

Comments
 (0)