# lab1初
# Course.java
```
package com.cctbcbank.demo.Lab1.model;
import java.util.UUID;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class Course {
private UUID id;
private String name;
private int price;
private CourseCategory category;
public void addCourse(Course c) {
category.addCourse(c);
}
public void removeCourse(UUID uuid) {
category.removeCourse(uuid);
}
public void modifyCourse(Course c) {
category.setName(name);
}
public Course() {
super();
}
public Course(CourseCategory category) {
super();
this.category = category;
}
}
```
# CourseTest
```
package com.cctbcbank.demo.Step1;
import java.util.UUID;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import com.cctbcbank.demo.Lab1.model.Course;
import com.cctbcbank.demo.Lab1.model.CourseCategory;
public class CourseTest {
private CourseCategory category;
//private List<Course> courses = new ArrayList<>();
private Course course;
@Test
public void CourseNullTest() {
course = new Course();
Assertions.assertNotNull(course);
}
@Test
public void addCousreTest() {
category = new CourseCategory();
course = new Course();
category.addCourse(course);
Assertions.assertNotNull(category);
}
@Test
public void removeCourseTest() {
category = new CourseCategory();
course = new Course();
UUID id = UUID.randomUUID();
course.setId(id);
course.setName("abc");
course.setPrice(1000);
// System.out.println("1="+course);
category.addCourse(course);
// System.out.println("2="+category.getCourses().get(0));
category.removeCourse(id);
// System.out.println("3="+category.getId());
Assertions.assertNull(category.getId());
}
@Test
public void CourseGetterSetterTest() {
course = new Course();
course.setName("xyz");
Assertions.assertEquals("xyz",course.getName());
}
}
```
# CourseServiceJDKImplement.java
```
package com.cctbcbank.demo.Lab1.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import com.cctbcbank.demo.Lab1.model.Course;
import com.cctbcbank.demo.Lab1.model.CourseCategory;
public class CourseServiceJDKImplement implements CourseService {
public static Course course = null;
private List<Course> courses = new ArrayList<>();
@Override
public List<Course> getAllCourseService() {
courses = new ArrayList<>();
courses.add(course);
return courses;
}
@Override
public Course addCourseService(String name, int price) {
course = new Course();
courses = new ArrayList<>();
course.setId(UUID.randomUUID());
course.setName(name);
course.setPrice(price);
courses.add(course);
return course;
}
@Override
public void removeCourseService(UUID id) {
courses = new ArrayList<>();
course = new Course();
if(course.getId()!=null) {
courses.remove(id);
}
else {
course.setId(null);
courses.add(course);
}
}
@Override
public Course modifyCourseService(UUID id, String name, int price) {
course = new Course();
if(id!=null) {
course.setId(id);
course.setName(name);
course.setPrice(price);
}
else {
course.setId(null);
}
return course;
}
}
```
# CourseServiceTest
```
package com.cctbcbank.demo.Step2;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import com.cctbcbank.demo.Lab1.Service.CourseServiceJDKImplement;
import com.cctbcbank.demo.Lab1.model.Course;
import com.cctbcbank.demo.Lab1.model.CourseCategory;
public class CourseServiceTest {
private Course course = null;
// private Course allCourseService = null;
// private Course category = new Course();
// private Course category = null;
private List<Course> courses = new ArrayList<>();
// 取得所有課程
@Test
public void getAllCourseServiceTest() {
course = new Course();
CourseServiceJDKImplement service = new CourseServiceJDKImplement();
course = service.addCourseService("Java", 10000);
// System.out.println(course.getName());
Assertions.assertEquals("Java", course.getName());
}
// 新增課程測試
@Test
public void addCourseServiceTest() {
course = new Course();
CourseServiceJDKImplement service = new CourseServiceJDKImplement();
String Name = "Java";
int Price = 10000;
course = service.addCourseService(Name, Price);
Assertions.assertEquals(Name, course.getName());
}
// 刪除課程測試(未完成)
@Test
public void removeCourseServiceTest() {
course = new Course();
// 實作
CourseServiceJDKImplement service = new CourseServiceJDKImplement();
String Name = "Java";
int Price = 10000;
course = service.addCourseService(Name, Price);
courses.add(course);
// System.out.println(service.getAllCourseService().get(0).getId());
service.removeCourseService(service.getAllCourseService().get(0).getId());
// System.out.println(service.getAllCourseService().get(0).getId());
Assertions.assertNull(service.getAllCourseService().get(0).getId());
}
// 修改課程
@Test
public void modifyCourseServiceTest() {
CourseServiceJDKImplement service = new CourseServiceJDKImplement();
UUID uuid = UUID.randomUUID();
String Name = "Java";
int Price = 10000;
service.addCourseService("C#", 12000);
// System.out.println(service.getAllCourseService().get(0).getName());
service.modifyCourseService(uuid, Name, Price);
// System.out.println(service.getAllCourseService().get(0).getName());
Assertions.assertEquals(Name, service.getAllCourseService().get(0).getName());
}
}
```
# CourseCategory.java
```
package com.cctbcbank.demo.Lab1.model;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class CourseCategory {
private UUID id;
private String name;
private String detail;
private List<Course> courses = new ArrayList<>();
public void addCourse(Course c) {
courses.add(c);
}
public void removeCourse(UUID uuid) {
courses.remove(uuid);
}
public CourseCategory() {
super();
}
public CourseCategory(List<Course> courses) {
super();
this.courses = courses;
}
}
```
# CourseCategoryTest
```
package com.cctbcbank.demo.Step1;
import java.util.UUID;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import com.cctbcbank.demo.Lab1.model.Course;
import com.cctbcbank.demo.Lab1.model.CourseCategory;
public class CourseCategoryTest {
public static Course course = null;
public static CourseCategory courseCategory = null;
@Test
public void CourseCategoryNullTest() {
CourseCategory c1 = new CourseCategory();
Assertions.assertNotNull(c1);
}
@Test
public void addCourseTest() {
course = new Course();
courseCategory = new CourseCategory();
course.setId(UUID.randomUUID());
course.setName("ABC");
course.setPrice(1000);
// list有內容
// System.out.println(courses.get(0).getName());
// 去叫courseCategory中的addCourse()
courseCategory.addCourse(course);
// System.out.println(courseCategory.getCourses().get(0).getName());
Assertions.assertNotNull(courseCategory.getCourses());
}
@Test
public void removeCourseTest() {
course = new Course();
courseCategory = new CourseCategory();
UUID id = UUID.randomUUID();
course.setId(id);
course.setName("ABC");
course.setPrice(1000);
// System.out.println(course.getName());
courseCategory.removeCourse(id);
// System.out.println(courseCategory.getName());
Assertions.assertNull(courseCategory.getName());
}
@Test
public void CourseCategoryGetterSetterTest() {
courseCategory = new CourseCategory();
courseCategory.setName("xyz");
Assertions.assertEquals("xyz", courseCategory.getName());
}
}
```
# CourseCategoryServiceJDKImplement.java
```
package com.cctbcbank.demo.Lab1.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import com.cctbcbank.demo.Lab1.model.CourseCategory;
public class CourseCategoryServiceJDKImplement implements CourseCategoryService {
private static CourseCategory courseCategory = null;
private List<CourseCategory> allCourseCategory = new ArrayList<>();
@Override
public List<CourseCategory> getAllCourseCategory() {
allCourseCategory = new ArrayList<>();
allCourseCategory.add(courseCategory);
return allCourseCategory;
}
@Override
public CourseCategory addCourseCategory(String name, String detail) {
courseCategory = new CourseCategory();
allCourseCategory = new ArrayList<>();
courseCategory.setId(UUID.randomUUID());
courseCategory.setName(name);
courseCategory.setDetail(detail);
allCourseCategory.add(courseCategory);
return courseCategory;
}
@Override
public void removeCourseCategory(UUID id) {
courseCategory = new CourseCategory();
allCourseCategory = new ArrayList<>();
if(courseCategory.getId()!=null) {
allCourseCategory.remove(id);
courseCategory.removeCourse(id);
}
else if(courseCategory.getId()== null) {
courseCategory.setId(null);
}
}
@Override
public CourseCategory modifyCourseCategory(UUID id, String name, String detail) {
courseCategory = new CourseCategory();
if(id!=null) {
courseCategory.setId(id);
courseCategory.setName(name);
courseCategory.setDetail(detail);
}
else {
courseCategory.setId(null);
}
return courseCategory;
}
}
```
# CourseCategoryServiceTest
```
package com.cctbcbank.demo.Step2;
import java.util.UUID;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import com.cctbcbank.demo.Lab1.Service.CourseCategoryServiceJDKImplement;
import com.cctbcbank.demo.Lab1.model.CourseCategory;
public class CourseCategoryServiceTest {
private CourseCategory courseCategory;
// private List<CourseCategory> allcourseCategory = new ArrayList<>();
// 取得所有課程類別
@Test
public void getAllCourseCategoryTest() {
CourseCategoryServiceJDKImplement service = new CourseCategoryServiceJDKImplement();
service.addCourseCategory("Java","Java is good");
// System.out.println(service.getAllCourseCategory().get(0).getName());
Assertions.assertNotNull(service.getAllCourseCategory());
}
// 新增測試課程名稱、資訊
@Test
public void addCourseCategoryTest() {
String Name = "Java";
String Detail = "Java is good";
CourseCategoryServiceJDKImplement service = new CourseCategoryServiceJDKImplement();
courseCategory = service.addCourseCategory(Name, Detail);
// System.out.println(courseCategory.getName());
Assertions.assertEquals(Name, courseCategory.getName());
}
// 刪除測試課程名稱、資訊
@Test
public void removeCourseCategoryTest() {
CourseCategoryServiceJDKImplement service = new CourseCategoryServiceJDKImplement();
String Name = "Java";
String Detail = "Java is good";
service.addCourseCategory(Name, Detail);
// System.out.println(service.getAllCourseCategory().get(0).getId());
service.removeCourseCategory(service.getAllCourseCategory().get(0).getId());
// System.out.println(service.getAllCourseCategory().get(0).getId());
Assertions.assertEquals(null,service.getAllCourseCategory().get(0).getId());
}
// 修改測試課程名稱、資訊
@Test
public void modifyCourseCategoryTest() {
CourseCategoryServiceJDKImplement service = new CourseCategoryServiceJDKImplement();
UUID id = UUID.randomUUID();
String Name = "Java";
String Detail = "Java is good";
service.addCourseCategory(Name, Detail);
// System.out.println(service.getAllCourseCategory().get(0).getName());
service.modifyCourseCategory(id, "C#","C# is good");
// System.out.println(service.getAllCourseCategory().get(0).getName());
Assertions.assertEquals("C#", service.getAllCourseCategory().get(0).getName());
}
}
```