// package design; // import static org.junit.jupiter.api.Assertions.assertEquals; // import static org.junit.jupiter.api.Assertions.assertTrue; // import org.junit.jupiter.api.Test; // import design.model.course_search.*; // import design.model.*; // import java.util.List; // class TestCourseList { // // A dummy Course implementation for testing // private static class DummyCourse implements ICourse { // private final String name; // private final float difficulty; // public DummyCourse(String name, float difficulty) { // this.name = name; // this.difficulty = difficulty; // } // @Override // public String getName() { return name; } // @Override // public float getDifficultyRating() { return difficulty; } // @Override // public String getLocation() { return ""; } // @Override // public int getTotalPar() { return 0; } // @Override // public int getHoleCount() { return 0; } // @Override // public List getHoles() { return null; } // } // // A simple sorter that sorts courses by difficulty // private static class SortByDifficultyTest implements CourseSorter { // @Override // public void sortCourses(List courses) { // courses.sort((c1, c2) -> Float.compare(c1.getDifficultyRating(), c2.getDifficultyRating())); // } // } // @Test // public void testAddAndRemoveCourses() { // CourseList courseList = new CourseList(); // ICourse course1 = new DummyCourse("Course A", 2.0f); // ICourse course2 = new DummyCourse("Course B", 5.0f); // courseList.add(course1); // courseList.add(course2); // assertEquals(2, courseList.getCourses().size(), "Should have 2 courses after adding"); // assertTrue(courseList.getCourses().contains(course1), "Course A should be in the list"); // assertTrue(courseList.getCourses().contains(course2), "Course B should be in the list"); // courseList.remove(course1); // assertEquals(1, courseList.getCourses().size(), "Should have 1 course after removal"); // assertTrue(!courseList.getCourses().contains(course1), "Course A should no longer be in the list"); // } // @Test // public void testSortCourses() { // CourseList courseList = new CourseList(); // courseList.add(new DummyCourse("Course A", 3.0f)); // courseList.add(new DummyCourse("Course B", 1.0f)); // courseList.add(new DummyCourse("Course C", 2.0f)); // // Set sorting strategy // courseList.setSorter(new SortByDifficultyTest()); // courseList.sort(); // List sorted = courseList.getCourses(); // assertEquals("Course B", sorted.get(0).getName(), "First course should have lowest difficulty"); // assertEquals("Course C", sorted.get(1).getName(), "Second course should have medium difficulty"); // assertEquals("Course A", sorted.get(2).getName(), "Last course should have highest difficulty"); // } // }