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