diff --git a/src/main/java/TutorLink.java b/src/main/java/TutorLink.java new file mode 100644 index 0000000000..f65a5c4c59 --- /dev/null +++ b/src/main/java/TutorLink.java @@ -0,0 +1,23 @@ +import java.util.Scanner; + +/** + * Represents the main class containing the entry point for the TutorLink application + */ +public class TutorLink { + /** + * Main entry-point for the java.duke.Duke application. + */ + public static void main(String[] args) { + String logo = "___________ __ .____ .__ __ \n" + + "\\__ ___/_ ___/ |_ ___________| | |__| ____ | | __\n" + + " | | | | \\ __\\/ _ \\_ __ \\ | | |/ \\| |/ /\n" + + " | | | | /| | ( <_> ) | \\/ |___| | | \\ < \n" + + " |____| |____/ |__| \\____/|__| |_______ \\__|___| /__|_ \\\n" + + " \\/ \\/ \\/\n"; + System.out.println("Hello from\n" + logo); + System.out.println("What is your name?"); + + Scanner in = new Scanner(System.in); + System.out.println("Hello " + in.nextLine()); + } +} diff --git a/src/main/java/exception/StudentNotFoundException.java b/src/main/java/exception/StudentNotFoundException.java new file mode 100644 index 0000000000..876a447e54 --- /dev/null +++ b/src/main/java/exception/StudentNotFoundException.java @@ -0,0 +1,5 @@ +package exception; + +public class StudentNotFoundException extends Exception{ + //no other code needed +} diff --git a/src/main/java/tutorlink/assignmentpackage/Assignment.java b/src/main/java/tutorlink/assignmentpackage/Assignment.java new file mode 100644 index 0000000000..7398811fcf --- /dev/null +++ b/src/main/java/tutorlink/assignmentpackage/Assignment.java @@ -0,0 +1,33 @@ +package tutorlink.assignmentpackage; + +import java.util.Objects; + +public class Assignment { + private String assginmentDescription; + private double receivedScore; + private double totalScore; + private double weighting; + + public Assignment(String assginmentDescription, double receivedScore, double totalScore, double weighting) { + this.assginmentDescription = assginmentDescription; + this.receivedScore = receivedScore; + this.totalScore = totalScore; + this.weighting = weighting; + } + + public double getWeightedScore() { + return (receivedScore / totalScore) * weighting; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null || getClass() != obj.getClass()){ + return false; + } + Assignment that = (Assignment) obj; + return Objects.equals(assginmentDescription, that.assginmentDescription); + } +} diff --git a/src/main/java/tutorlink/attendancepackage/Attendance.java b/src/main/java/tutorlink/attendancepackage/Attendance.java new file mode 100644 index 0000000000..5ce68bc1f7 --- /dev/null +++ b/src/main/java/tutorlink/attendancepackage/Attendance.java @@ -0,0 +1,23 @@ +package tutorlink.attendancepackage; + +public class Attendance { + private String attendanceVenue; + private String attendanceDateTime; //modify this to accept LocalDateTime + private boolean isPresent; + + public Attendance(String attendanceVenue, String localDateTime, boolean isPresent){ + this.attendanceVenue = attendanceVenue; + this.attendanceDateTime = localDateTime; + this.isPresent = isPresent; + } + + public String getAttendanceDateTime() { + return attendanceDateTime; + } + public String getAttendanceVenue() { + return attendanceVenue; + } + public boolean getIsPresent() { + return isPresent; + } +} diff --git a/src/main/java/tutorlink/commandpackage/Command.java b/src/main/java/tutorlink/commandpackage/Command.java new file mode 100644 index 0000000000..dae3d4c936 --- /dev/null +++ b/src/main/java/tutorlink/commandpackage/Command.java @@ -0,0 +1,21 @@ +package tutorlink.commandpackage; + +import tutorlink.listpackage.ItemList; + +/** + * Represents an interpreted Command from the user. A Command object corresponds to a + * single user-issued command from the terminal. + */ +public abstract class Command { + /** + * Executes the required operations to perform the command issued by the user. + */ + public abstract void execute(ItemList list); + + /** + * Checks if the command is an exit command. + * + * @return whether the current command is an ExitCommand + */ + public abstract boolean isExit(); +} diff --git a/src/main/java/tutorlink/commandpackage/assignmentcommand/AddAssignmentCommand.java b/src/main/java/tutorlink/commandpackage/assignmentcommand/AddAssignmentCommand.java new file mode 100644 index 0000000000..11b0dfa367 --- /dev/null +++ b/src/main/java/tutorlink/commandpackage/assignmentcommand/AddAssignmentCommand.java @@ -0,0 +1,24 @@ +package tutorlink.commandpackage.assignmentcommand; + +import tutorlink.assignmentpackage.Assignment; +import tutorlink.listpackage.AssignmentList; +import tutorlink.listpackage.ItemList; + +public class AddAssignmentCommand extends AssignmentCommand { + public AddAssignmentCommand(Assignment assignment) { + super(assignment); + } + + public void execute(ItemList list) { + if (list instanceof AssignmentList) { + ((AssignmentList) list).addAssignment(assignment); + } else { + throw new IllegalArgumentException("Invalid list type. Expected StudentList."); + } + } + + @Override + public boolean isExit() { + return false; + } +} diff --git a/src/main/java/tutorlink/commandpackage/assignmentcommand/AssignmentCommand.java b/src/main/java/tutorlink/commandpackage/assignmentcommand/AssignmentCommand.java new file mode 100644 index 0000000000..b0c1db91fc --- /dev/null +++ b/src/main/java/tutorlink/commandpackage/assignmentcommand/AssignmentCommand.java @@ -0,0 +1,16 @@ +package tutorlink.commandpackage.assignmentcommand; + +import tutorlink.commandpackage.Command; +import tutorlink.assignmentpackage.Assignment; + +public abstract class AssignmentCommand extends Command { + protected Assignment assignment; + + public AssignmentCommand(Assignment assignment) { + this.assignment = assignment; + } + + public boolean isExit() { + return false; + } +} diff --git a/src/main/java/tutorlink/commandpackage/assignmentcommand/DeleteAssignmentCommand.java b/src/main/java/tutorlink/commandpackage/assignmentcommand/DeleteAssignmentCommand.java new file mode 100644 index 0000000000..8984dd833d --- /dev/null +++ b/src/main/java/tutorlink/commandpackage/assignmentcommand/DeleteAssignmentCommand.java @@ -0,0 +1,16 @@ +package tutorlink.commandpackage.assignmentcommand; + +import tutorlink.listpackage.ItemList; +import tutorlink.assignmentpackage.Assignment; + +public class DeleteAssignmentCommand extends AssignmentCommand{ + public DeleteAssignmentCommand(Assignment assignment) { + super(assignment); + } + + + @Override + public void execute(ItemList list) { + + } +} diff --git a/src/main/java/tutorlink/commandpackage/attendancecommand/AddAttendanceCommand.java b/src/main/java/tutorlink/commandpackage/attendancecommand/AddAttendanceCommand.java new file mode 100644 index 0000000000..0ce5654bf2 --- /dev/null +++ b/src/main/java/tutorlink/commandpackage/attendancecommand/AddAttendanceCommand.java @@ -0,0 +1,16 @@ +package tutorlink.commandpackage.attendancecommand; + +import tutorlink.listpackage.ItemList; +import tutorlink.attendancepackage.Attendance; + +public class AddAttendanceCommand extends AttendanceCommand{ + + public AddAttendanceCommand(Attendance attendance) { + super(attendance); + } + + @Override + public void execute(ItemList list) { + + } +} diff --git a/src/main/java/tutorlink/commandpackage/attendancecommand/AttendanceCommand.java b/src/main/java/tutorlink/commandpackage/attendancecommand/AttendanceCommand.java new file mode 100644 index 0000000000..8bef10cb79 --- /dev/null +++ b/src/main/java/tutorlink/commandpackage/attendancecommand/AttendanceCommand.java @@ -0,0 +1,17 @@ +package tutorlink.commandpackage.attendancecommand; + +import tutorlink.commandpackage.Command; +import tutorlink.attendancepackage.Attendance; + +public abstract class AttendanceCommand extends Command { + private Attendance attendance; + + public AttendanceCommand(Attendance attendance) { + this.attendance = attendance; + } + + @Override + public boolean isExit() { + return false; + } +} diff --git a/src/main/java/tutorlink/commandpackage/attendancecommand/DeleteAttendanceCommand.java b/src/main/java/tutorlink/commandpackage/attendancecommand/DeleteAttendanceCommand.java new file mode 100644 index 0000000000..11b0303cbc --- /dev/null +++ b/src/main/java/tutorlink/commandpackage/attendancecommand/DeleteAttendanceCommand.java @@ -0,0 +1,16 @@ +package tutorlink.commandpackage.attendancecommand; + +import tutorlink.listpackage.ItemList; +import tutorlink.attendancepackage.Attendance; + +public class DeleteAttendanceCommand extends AttendanceCommand{ + + public DeleteAttendanceCommand(Attendance attendance) { + super(attendance); + } + + @Override + public void execute(ItemList list) { + + } +} diff --git a/src/main/java/tutorlink/commandpackage/studentcommand/AddStudentCommand.java b/src/main/java/tutorlink/commandpackage/studentcommand/AddStudentCommand.java new file mode 100644 index 0000000000..45b5f4b00e --- /dev/null +++ b/src/main/java/tutorlink/commandpackage/studentcommand/AddStudentCommand.java @@ -0,0 +1,27 @@ +package tutorlink.commandpackage.studentcommand; + +import tutorlink.listpackage.ItemList; +import tutorlink.listpackage.StudentList; +import tutorlink.studentpackage.StudentClass; + +public class AddStudentCommand extends StudentCommand { + + public AddStudentCommand(StudentClass student) { + super(student); + } + + // Implement the generic execute method to handle the List type + @Override + public void execute(ItemList list) { + if (list instanceof StudentList) { + ((StudentList) list).addStudent(student); + } else { + throw new IllegalArgumentException("Invalid list type. Expected StudentList."); + } + } + + @Override + public boolean isExit() { + return super.isExit(); + } +} diff --git a/src/main/java/tutorlink/commandpackage/studentcommand/DeleteStudentCommand.java b/src/main/java/tutorlink/commandpackage/studentcommand/DeleteStudentCommand.java new file mode 100644 index 0000000000..d0e754124d --- /dev/null +++ b/src/main/java/tutorlink/commandpackage/studentcommand/DeleteStudentCommand.java @@ -0,0 +1,23 @@ +package tutorlink.commandpackage.studentcommand; + +import tutorlink.listpackage.ItemList; +import tutorlink.listpackage.StudentList; +import tutorlink.studentpackage.StudentClass; + + +public class DeleteStudentCommand extends StudentCommand { + + public DeleteStudentCommand(StudentClass student) { + super(student); + } + + // Implement the generic execute method to handle the List type + @Override + public void execute(ItemList list) { + if (list instanceof StudentList) { + ((StudentList) list).deleteStudent(student); + } else { + throw new IllegalArgumentException("Invalid list type. Expected StudentList."); + } + } +} diff --git a/src/main/java/tutorlink/commandpackage/studentcommand/StudentCommand.java b/src/main/java/tutorlink/commandpackage/studentcommand/StudentCommand.java new file mode 100644 index 0000000000..6de1b3ca86 --- /dev/null +++ b/src/main/java/tutorlink/commandpackage/studentcommand/StudentCommand.java @@ -0,0 +1,17 @@ +package tutorlink.commandpackage.studentcommand; + +import tutorlink.commandpackage.Command; +import tutorlink.studentpackage.StudentClass; + +public abstract class StudentCommand extends Command { + protected StudentClass student; + + public StudentCommand(StudentClass student) { + this.student = student; + } + + @Override + public boolean isExit() { + return false; + } +} diff --git a/src/main/java/tutorlink/coursepackage/Course.java b/src/main/java/tutorlink/coursepackage/Course.java new file mode 100644 index 0000000000..abfbcc14aa --- /dev/null +++ b/src/main/java/tutorlink/coursepackage/Course.java @@ -0,0 +1,29 @@ +package tutorlink.coursepackage; + +import tutorlink.listpackage.AssignmentList; +import tutorlink.listpackage.AttendanceList; +import tutorlink.assignmentpackage.Assignment; + +public class Course { + private String courseID; + private int courseMCs; + private LetterGrade grade; + private AssignmentList assignments; + private AttendanceList attendances; + + + public Course(String courseID, int courseMCs) { + this.courseID = courseID; + this.courseMCs = courseMCs; + assignments = new AssignmentList(); + attendances = new AttendanceList(); + } + + public void addAssignment(Assignment assignment) { + assignments.addAssignment(assignment); + } + + public void deleteAssignment(Assignment assignment) { + assignments.deleteAssignment(assignment); + } +} diff --git a/src/main/java/tutorlink/coursepackage/LetterGrade.java b/src/main/java/tutorlink/coursepackage/LetterGrade.java new file mode 100644 index 0000000000..979c1035cf --- /dev/null +++ b/src/main/java/tutorlink/coursepackage/LetterGrade.java @@ -0,0 +1,29 @@ +package tutorlink.coursepackage; + +public enum LetterGrade { + A_plus,A,A_minus, + B_plus,B,B_minus, + C_plus,C, + D_plus,D, + F, + IP; //In-Progress, no grade available + + public double getGPA(LetterGrade grade) { + double result = 0.0; + switch (grade) { + case A_plus -> result = 5.0; + case A -> result = 5.0; + case A_minus -> result = 4.5; + case B_plus -> result = 4.0; + case B -> result = 3.5; + case B_minus -> result = 3.0; + case C_plus -> result = 2.5; + case C -> result = 2.0; + case D_plus -> result = 1.5; + case D -> result = 1.0; + case F -> result = 0.0; + default -> result = -1.0; //IP case will be -1.0 + } + return result; + } +} diff --git a/src/main/java/tutorlink/listpackage/AssignmentList.java b/src/main/java/tutorlink/listpackage/AssignmentList.java new file mode 100644 index 0000000000..1dad1664f4 --- /dev/null +++ b/src/main/java/tutorlink/listpackage/AssignmentList.java @@ -0,0 +1,27 @@ +package tutorlink.listpackage; + +import tutorlink.assignmentpackage.Assignment; + +import java.util.ArrayList; + +public class AssignmentList extends ItemList { + private int numberOfAssignments; + private ArrayList assignmentArrayList; + + public AssignmentList() { + this.numberOfAssignments = 0; + this.assignmentArrayList = new ArrayList<>(); + } + + public void deleteAssignment(Assignment assignment){ + assignmentArrayList.remove(assignment); + } + + public void addAssignment(Assignment assignment){ + assignmentArrayList.add(assignment); + } + + public ArrayList getAssignmentArrayList() { + return assignmentArrayList; + } +} diff --git a/src/main/java/tutorlink/listpackage/AttendanceList.java b/src/main/java/tutorlink/listpackage/AttendanceList.java new file mode 100644 index 0000000000..e641007fdd --- /dev/null +++ b/src/main/java/tutorlink/listpackage/AttendanceList.java @@ -0,0 +1,23 @@ +package tutorlink.listpackage; + +import tutorlink.attendancepackage.Attendance; + +import java.util.ArrayList; + +public class AttendanceList extends ItemList { + private ArrayList attendanceArrayList; + private int numberOfAttendance; + + public AttendanceList() { + this.numberOfAttendance = 0; + this.attendanceArrayList = new ArrayList<>(); + } + + public void markAttendance(Attendance attendance){ + this.attendanceArrayList.add(attendance); + } + + public void unmarkAttendance(Attendance attendance){ + this.attendanceArrayList.remove(attendance); + } +} diff --git a/src/main/java/tutorlink/listpackage/CourseList.java b/src/main/java/tutorlink/listpackage/CourseList.java new file mode 100644 index 0000000000..3ce9b38ace --- /dev/null +++ b/src/main/java/tutorlink/listpackage/CourseList.java @@ -0,0 +1,24 @@ +package tutorlink.listpackage; + + +import tutorlink.coursepackage.Course; + +import java.util.ArrayList; + +public class CourseList extends ItemList { + private int numberOfCourses; + private ArrayList courseArrayList; + + public CourseList() { + this.numberOfCourses = 0; + this.courseArrayList = new ArrayList<>(); + } + + public void dropCourse(Course course) { + this.courseArrayList.remove(course); + } + + public void addCourse(Course course) { + this.courseArrayList.add(course); + } +} diff --git a/src/main/java/tutorlink/listpackage/ItemList.java b/src/main/java/tutorlink/listpackage/ItemList.java new file mode 100644 index 0000000000..f07e3fbcf4 --- /dev/null +++ b/src/main/java/tutorlink/listpackage/ItemList.java @@ -0,0 +1,4 @@ +package tutorlink.listpackage; + +public class ItemList { +} diff --git a/src/main/java/tutorlink/listpackage/StudentList.java b/src/main/java/tutorlink/listpackage/StudentList.java new file mode 100644 index 0000000000..cf730fd37a --- /dev/null +++ b/src/main/java/tutorlink/listpackage/StudentList.java @@ -0,0 +1,29 @@ +package tutorlink.listpackage; + +import tutorlink.studentpackage.StudentClass; + +import java.util.ArrayList; + +public class StudentList extends ItemList { + private ArrayList studentArrayList; + + public StudentList() { + this.studentArrayList = new ArrayList<>(); + } + + public void deleteStudent(StudentClass student) { + studentArrayList.remove(student); + } + + public void addStudent(StudentClass student) { + studentArrayList.add(student); + } + + public int getNumberOfStudents() { + return studentArrayList.size(); + } + + public ArrayList getStudentArrayList() { + return studentArrayList; + } +} diff --git a/src/main/java/tutorlink/parserpackage/Parser.java b/src/main/java/tutorlink/parserpackage/Parser.java new file mode 100644 index 0000000000..a7a0bf50cf --- /dev/null +++ b/src/main/java/tutorlink/parserpackage/Parser.java @@ -0,0 +1,59 @@ +package tutorlink.parserpackage; + +import tutorlink.commandpackage.studentcommand.AddStudentCommand; +import tutorlink.commandpackage.studentcommand.DeleteStudentCommand; +import tutorlink.listpackage.StudentList; +import tutorlink.studentpackage.StudentClass; +import exception.StudentNotFoundException; + +public class Parser { + + /** + * Finds a student in the provided student list by matriculation number. + * + * @param matricNumber the matriculation number of the student to find + * @param studentList the list of students to search in + * @return the Student object with the given matriculation number + * @throws StudentNotFoundException if no student with the given matriculation number is found + */ + private StudentClass findStudent(String matricNumber, StudentList studentList) throws StudentNotFoundException { + for (StudentClass a : studentList.getStudentArrayList()) { + if (a.getMatricNumber().equals(matricNumber)) { + return a; + } + } + throw new StudentNotFoundException(); + } + + /** + * Creates an AddStudentCommand for adding a new student. + * + * @param matricNumber the matriculation number of the new student + * @param gpa the gpa of the new student + * @return an AddStudentCommand object to add the new student + */ + public AddStudentCommand addStudentCommand(String matricNumber, double gpa) { + StudentClass newStudent = new StudentClass(matricNumber, gpa); + AddStudentCommand addStudentCommand = new AddStudentCommand(newStudent); + return addStudentCommand; + } + + /** + * Creates a DeleteStudentCommand for deleting a student with the given matriculation number. + * + * @param matricNumber the matriculation number of the student to delete + * @param studentList the list of students to search for the student + * @return a DeleteStudentCommand object to delete the student + */ + public DeleteStudentCommand deleteStudentCommand(String matricNumber, StudentList studentList) { + try { + StudentClass selectedStudent = findStudent(matricNumber, studentList); + DeleteStudentCommand deleteStudentCommand = new DeleteStudentCommand(selectedStudent); + return deleteStudentCommand; + } catch (StudentNotFoundException e) { + System.out.println("Student Not Found."); + } + return null; // Return null if the student is not found + } + +} diff --git a/src/main/java/tutorlink/studentpackage/StudentClass.java b/src/main/java/tutorlink/studentpackage/StudentClass.java new file mode 100644 index 0000000000..fa23bb3128 --- /dev/null +++ b/src/main/java/tutorlink/studentpackage/StudentClass.java @@ -0,0 +1,28 @@ +package tutorlink.studentpackage; + +public class StudentClass { + private String matricNumber; + private double gpa; + + public StudentClass(String matricNumber) { + this.matricNumber = matricNumber; + this.gpa = 5.0; // Default gpa value if not given + } + + public StudentClass(String matricNumber, double gpa) { + this.matricNumber = matricNumber; + this.gpa = gpa; + } + + public String getMatricNumber() { + return matricNumber; + } + + public double getGpa() { + return gpa; + } + + public void setGPA(double gpa) { + this.gpa = gpa; + } +} diff --git a/src/test/java/TutorLink/command/assignmentcommand/AddAssignmentCommandTest.java b/src/test/java/TutorLink/command/assignmentcommand/AddAssignmentCommandTest.java new file mode 100644 index 0000000000..91f72fd45d --- /dev/null +++ b/src/test/java/TutorLink/command/assignmentcommand/AddAssignmentCommandTest.java @@ -0,0 +1,24 @@ +package tutorlink.command.assignmentcommand; + +import org.junit.jupiter.api.Test; +import tutorlink.assignmentpackage.Assignment; +import tutorlink.commandpackage.assignmentcommand.AddAssignmentCommand; +import tutorlink.listpackage.AssignmentList; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; + +class AddAssignmentCommandTest { + @Test + void execute_addOne_expectOne() { + // setup + AssignmentList assignmentList = new AssignmentList(); + Assignment assignment1 = new Assignment("Test_1",100,100,0.2); + AddAssignmentCommand addAssignmentCommand = new AddAssignmentCommand(assignment1); + // execute + addAssignmentCommand.execute(assignmentList); + assertFalse(assignmentList.getAssignmentArrayList().isEmpty()); + assertEquals(1, assignmentList.getAssignmentArrayList().size()); + assertEquals(assignment1, assignmentList.getAssignmentArrayList().get(0)); + } +} diff --git a/src/test/java/listpackage/AssignmentListTest.java b/src/test/java/listpackage/AssignmentListTest.java new file mode 100644 index 0000000000..706208ced2 --- /dev/null +++ b/src/test/java/listpackage/AssignmentListTest.java @@ -0,0 +1,63 @@ +package listpackage; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import tutorlink.assignmentpackage.Assignment; +import tutorlink.listpackage.AssignmentList; + +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class AssignmentListTest { + + private AssignmentList assignmentList; + private Assignment assignment1; + private Assignment assignment2; + + @BeforeEach + void setUp() { + assignmentList = new AssignmentList(); + assignment1 = new Assignment("Assignment 1",1,1,1); + assignment2 = new Assignment("Assignment 2",1,2,1); + } + + @Test + void testAddAssignment() { + // Initially, the list should be empty + assertTrue(assignmentList.getAssignmentArrayList().isEmpty()); + + // Add an assignment + assignmentList.addAssignment(assignment1); + + // Check that the assignment was added + assertFalse(assignmentList.getAssignmentArrayList().isEmpty()); + assertEquals(1, assignmentList.getAssignmentArrayList().size()); + assertEquals(assignment1, assignmentList.getAssignmentArrayList().get(0)); + } + + @Test + void testDeleteAssignment() { + // Add an assignment first + assignmentList.addAssignment(assignment1); + assertEquals(1, assignmentList.getAssignmentArrayList().size()); + + // Now delete the assignment + assignmentList.deleteAssignment(assignment1); + + // Check that the assignment was removed + assertEquals(0, assignmentList.getAssignmentArrayList().size()); + } + + @Test + void testDeleteNonExistentAssignment() { + // Initially, the list should be empty + assertTrue(assignmentList.getAssignmentArrayList().isEmpty()); + + // Attempt to delete a non-existent assignment + assignmentList.deleteAssignment(assignment1); + + // The size should still be zero + assertEquals(0, assignmentList.getAssignmentArrayList().size()); + } +} diff --git a/src/test/java/listpackage/AttendanceListTest.java b/src/test/java/listpackage/AttendanceListTest.java new file mode 100644 index 0000000000..05d07db214 --- /dev/null +++ b/src/test/java/listpackage/AttendanceListTest.java @@ -0,0 +1,4 @@ +package listpackage; + +public class AttendanceListTest { +} diff --git a/src/test/java/listpackage/CourseListTest.java b/src/test/java/listpackage/CourseListTest.java new file mode 100644 index 0000000000..50d34ffe99 --- /dev/null +++ b/src/test/java/listpackage/CourseListTest.java @@ -0,0 +1,4 @@ +package listpackage; + +public class CourseListTest { +} diff --git a/src/test/java/listpackage/StudentListTest.java b/src/test/java/listpackage/StudentListTest.java new file mode 100644 index 0000000000..d5fc97fc62 --- /dev/null +++ b/src/test/java/listpackage/StudentListTest.java @@ -0,0 +1,41 @@ +package tutorlink.list; +import tutorlink.listpackage.StudentList; +import tutorlink.commandpackage.studentcommand.AddStudentCommand; +import tutorlink.commandpackage.studentcommand.DeleteStudentCommand; + +import org.junit.jupiter.api.Test; +import tutorlink.parserpackage.Parser; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class StudentListTest { + + @Test + public void addStudentCommand_nonEmptyMatricNumberAndGPA_success() throws Exception { + Parser parser = new Parser(); + StudentList studentList = new StudentList(); + assertEquals(0, studentList.getNumberOfStudents()); + AddStudentCommand addStudentCommand = parser.addStudentCommand("A0123456X", 5.0); + + addStudentCommand.execute(studentList); + assertEquals(1, studentList.getNumberOfStudents()); + } + + @Test + public void deleteStudentCommand_nonEmptyMatricNumberAndGPA_success() throws Exception { + Parser parser = new Parser(); + StudentList studentList = new StudentList(); + + assertEquals(0, studentList.getNumberOfStudents()); + AddStudentCommand addStudentCommand = parser.addStudentCommand("A0123456X", 5.0); + addStudentCommand.execute(studentList); + + assertEquals(1, studentList.getNumberOfStudents()); + + DeleteStudentCommand deleteStudentCommand = parser.deleteStudentCommand("A0123456X", studentList); + + deleteStudentCommand.execute(studentList); + assertEquals(0, studentList.getNumberOfStudents()); + } + +}