diff --git a/src/test/java/repository/CourseListTest.java b/src/test/java/repository/CourseListTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..794d4aa3e368e14cd261a472f834a6b872f97c75
--- /dev/null
+++ b/src/test/java/repository/CourseListTest.java
@@ -0,0 +1,85 @@
+package repository;
+
+import Softeng.Group3.SiJadwal.model.Course;
+import Softeng.Group3.SiJadwal.repository.CourseList;
+import Softeng.Group3.SiJadwal.model.Assignment;
+import org.checkerframework.checker.units.qual.A;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.TestInstance;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import java.sql.Time;
+import java.util.List;
+import java.lang.System;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)
+public class CourseListTest {
+    private static final CourseList courseList = new CourseList();
+    private final PrintStream standardOut = System.out;
+    private final ByteArrayOutputStream outputStreamCaptor = new ByteArrayOutputStream();
+    private Course course;
+
+    @BeforeEach
+    void setup() {
+        course = new Course();
+        course.setCourseName("random");
+        course.setStartTime(Time.valueOf("1:00:00"));
+        course.setEndTime(Time.valueOf("1:00:01"));
+        course.setLecturer("dummy");
+    }
+
+    @Test
+    void getCourseListTest(){
+        courseList.addCourse(course.getCourseName(), course.getLecturer(), course.getStartTime(), course.getEndTime());
+        List<Course> test = courseList.getCourseList();
+        assertNotEquals(null, test);
+    }
+
+    @Test
+    void getCourseTest(){
+        courseList.addCourse(course.getCourseName(), course.getLecturer(), course.getStartTime(), course.getEndTime());
+        Course test = courseList.getCourse(course.getCourseName());
+        assertEquals("random", test.getCourseName());
+    }
+
+    @Test
+    void addCourseTest(){
+        int initial = courseList.getCourseList().size();
+        courseList.addCourse(course.getCourseName(), course.getLecturer(), course.getStartTime(), course.getEndTime());
+        int after = courseList.getCourseList().size();
+        assertEquals(initial + 1, after);
+    }
+
+    @Test
+    void deleteCourseTest(){
+        courseList.addCourse(course.getCourseName(), course.getLecturer(), course.getStartTime(), course.getEndTime());
+        int initial = courseList.getCourseList().size();
+        courseList.deleteCourse(course.getCourseName());
+        int after = courseList.getCourseList().size();
+        assertEquals(initial - 1, after);
+    }
+
+    @Test
+    void ListtoStringTest(){
+        courseList.addCourse(course.getCourseName(), course.getLecturer(), course.getStartTime(), course.getEndTime());
+        System.setOut(new PrintStream(outputStreamCaptor));
+        courseList.listToString(courseList.getCourseList());
+        assertEquals("1. random", outputStreamCaptor.toString().trim());
+        System.setOut(standardOut);
+    }
+
+    @Test
+    void updateCourseTest(){
+        courseList.addCourse(course.getCourseName(), course.getLecturer(), course.getStartTime(), course.getEndTime());
+        courseList.updateCourse(course.getCourseName(), "abc", course.getStartTime(), course.getEndTime());
+        Course newCourse = courseList.getCourse(course.getCourseName());
+        String lecturer = newCourse.getLecturer();
+        assertEquals("abc", lecturer);
+    }
+
+}
\ No newline at end of file