From 8abf1d4e124cc3ad05d9ba86da41cc36dbdb2301 Mon Sep 17 00:00:00 2001 From: KWY Date: Wed, 10 Apr 2024 15:02:10 +0900 Subject: [PATCH] =?UTF-8?q?[TEST]=20=ED=96=89=EC=82=AC=20=EC=B6=9C?= =?UTF-8?q?=EC=84=9D=20=EC=83=81=ED=83=9C=20=EB=B0=98=ED=99=98=20=EB=8B=A8?= =?UTF-8?q?=EC=9C=84=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/AttendanceGetStatusTest.java | 239 ++++++++++++------ 1 file changed, 163 insertions(+), 76 deletions(-) diff --git a/operation-domain/src/test/java/org/sopt/makers/operation/attendance/domain/AttendanceGetStatusTest.java b/operation-domain/src/test/java/org/sopt/makers/operation/attendance/domain/AttendanceGetStatusTest.java index cb286139..a0877f15 100644 --- a/operation-domain/src/test/java/org/sopt/makers/operation/attendance/domain/AttendanceGetStatusTest.java +++ b/operation-domain/src/test/java/org/sopt/makers/operation/attendance/domain/AttendanceGetStatusTest.java @@ -2,6 +2,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.sopt.makers.operation.common.domain.Part; import org.sopt.makers.operation.dummy.AttendanceDummy; @@ -30,83 +31,169 @@ class AttendanceGetStatusTest { private List attendances; private Attendance attendance; - @BeforeEach - void setUp() { - member = MemberDummy.builder() - .id(1L) - .attendances(new ArrayList<>()) - .build(); - - lecture = new LectureDummy(1L, "서버 1차 세미나", Part.SERVER, 34, "오산역", LocalDateTime.now(), LocalDateTime.now(), Attribute.SEMINAR, LectureStatus.BEFORE); - - subLecture1 = new SubLectureDummy(1L, lecture, 1, LocalDateTime.now(), "000001"); - subLecture2 = new SubLectureDummy(2L, lecture, 2, LocalDateTime.now(), "000002"); - - subLectures = new ArrayList<>(); - subLectures.add(subLecture1); - subLectures.add(subLecture2); - - attendances = new ArrayList<>(); - attendance = new AttendanceDummy(1L, member, lecture, AttendanceStatus.ABSENT); - attendances.add(attendance); - - lecture.setOneToMany(subLectures, attendances); - } - - @Test - @DisplayName("세미나 1차 출석을 했고, 2차 출석을 했으면 출석 처리가 된다.") - void getStatusTest() { - // given - SubAttendance subAttendance1 = new SubAttendanceDummy(1L, attendance, subLecture1, AttendanceStatus.ATTENDANCE); - SubAttendance subAttendance2 = new SubAttendanceDummy(2L, attendance, subLecture2, AttendanceStatus.ATTENDANCE); - - // when - AttendanceStatus attendanceStatus = attendance.getStatus(); - - // then - assertThat(attendanceStatus).isEqualTo(AttendanceStatus.ATTENDANCE); - } - - @Test - @DisplayName("세미나에서 1차 출석을 했고, 2차 출석을 결석했으면 지각 처리가 된다.") - void getStatusTest2() { - // given - SubAttendance subAttendance1 = new SubAttendanceDummy(1L, attendance, subLecture1, AttendanceStatus.ATTENDANCE); - SubAttendance subAttendance2 = new SubAttendanceDummy(2L, attendance, subLecture2, AttendanceStatus.ABSENT); - - // when - AttendanceStatus attendanceStatus = attendance.getStatus(); - - // then - assertThat(attendanceStatus).isEqualTo(AttendanceStatus.TARDY); - } - - @Test - @DisplayName("세미나에서 1차 출석을 결석했고, 2차 출석을 했으면 지각 처리가 된다.") - void getStatusTest3() { - // given - SubAttendance subAttendance1 = new SubAttendanceDummy(1L, attendance, subLecture1, AttendanceStatus.ABSENT); - SubAttendance subAttendance2 = new SubAttendanceDummy(2L, attendance, subLecture2, AttendanceStatus.ATTENDANCE); - - // when - AttendanceStatus attendanceStatus = attendance.getStatus(); - - // then - assertThat(attendanceStatus).isEqualTo(AttendanceStatus.TARDY); + @Nested + @DisplayName("[세미나 출석 상태 반환 테스트]") + public class SeminarTest { + @BeforeEach + void setUp() { + member = MemberDummy.builder() + .id(1L) + .attendances(new ArrayList<>()) + .build(); + + lecture = new LectureDummy(1L, "서버 1차 세미나", Part.SERVER, 34, "오산역", LocalDateTime.now(), LocalDateTime.now(), Attribute.SEMINAR, LectureStatus.BEFORE); + + subLecture1 = new SubLectureDummy(1L, lecture, 1, LocalDateTime.now(), "000001"); + subLecture2 = new SubLectureDummy(2L, lecture, 2, LocalDateTime.now(), "000002"); + + subLectures = new ArrayList<>(); + subLectures.add(subLecture1); + subLectures.add(subLecture2); + + attendances = new ArrayList<>(); + attendance = new AttendanceDummy(1L, member, lecture, AttendanceStatus.ABSENT); + attendances.add(attendance); + + lecture.setOneToMany(subLectures, attendances); + } + + @Test + @DisplayName("세미나 1차 출석을 했고, 2차 출석을 했으면 출석 처리가 된다.") + void getStatusTest() { + // given + SubAttendance subAttendance1 = new SubAttendanceDummy(1L, attendance, subLecture1, AttendanceStatus.ATTENDANCE); + SubAttendance subAttendance2 = new SubAttendanceDummy(2L, attendance, subLecture2, AttendanceStatus.ATTENDANCE); + + // when + AttendanceStatus attendanceStatus = attendance.getStatus(); + + // then + assertThat(attendanceStatus).isEqualTo(AttendanceStatus.ATTENDANCE); + } + + @Test + @DisplayName("세미나에서 1차 출석을 했고, 2차 출석을 결석했으면 지각 처리가 된다.") + void getStatusTest2() { + // given + SubAttendance subAttendance1 = new SubAttendanceDummy(1L, attendance, subLecture1, AttendanceStatus.ATTENDANCE); + SubAttendance subAttendance2 = new SubAttendanceDummy(2L, attendance, subLecture2, AttendanceStatus.ABSENT); + + // when + AttendanceStatus attendanceStatus = attendance.getStatus(); + + // then + assertThat(attendanceStatus).isEqualTo(AttendanceStatus.TARDY); + } + + @Test + @DisplayName("세미나에서 1차 출석을 결석했고, 2차 출석을 했으면 지각 처리가 된다.") + void getStatusTest3() { + // given + SubAttendance subAttendance1 = new SubAttendanceDummy(1L, attendance, subLecture1, AttendanceStatus.ABSENT); + SubAttendance subAttendance2 = new SubAttendanceDummy(2L, attendance, subLecture2, AttendanceStatus.ATTENDANCE); + + // when + AttendanceStatus attendanceStatus = attendance.getStatus(); + + // then + assertThat(attendanceStatus).isEqualTo(AttendanceStatus.TARDY); + } + + @Test + @DisplayName("세미나에서 1차 출석을 결석했고, 2차 출석을 결석했으면 결석 처리가 된다.") + void getStatusTest4() { + // given + SubAttendance subAttendance1 = new SubAttendanceDummy(1L, attendance, subLecture1, AttendanceStatus.ABSENT); + SubAttendance subAttendance2 = new SubAttendanceDummy(2L, attendance, subLecture2, AttendanceStatus.ABSENT); + + // when + AttendanceStatus attendanceStatus = attendance.getStatus(); + + // then + assertThat(attendanceStatus).isEqualTo(AttendanceStatus.ABSENT); + } } - @Test - @DisplayName("세미나에서 1차 출석을 결석했고, 2차 출석을 결석했으면 결석 처리가 된다.") - void getStatusTest4() { - // given - SubAttendance subAttendance1 = new SubAttendanceDummy(1L, attendance, subLecture1, AttendanceStatus.ABSENT); - SubAttendance subAttendance2 = new SubAttendanceDummy(2L, attendance, subLecture2, AttendanceStatus.ABSENT); - - // when - AttendanceStatus attendanceStatus = attendance.getStatus(); - - // then - assertThat(attendanceStatus).isEqualTo(AttendanceStatus.ABSENT); + @Nested + @DisplayName("[행사 출석 상태 반환 테스트]") + public class EventTest { + @BeforeEach + void setUp() { + member = MemberDummy.builder() + .id(1L) + .attendances(new ArrayList<>()) + .build(); + + lecture = new LectureDummy(1L, "1차 행사", Part.SERVER, 34, "오산역", LocalDateTime.now(), LocalDateTime.now(), Attribute.EVENT, LectureStatus.BEFORE); + + subLecture1 = new SubLectureDummy(1L, lecture, 1, LocalDateTime.now(), "000001"); + subLecture2 = new SubLectureDummy(2L, lecture, 2, LocalDateTime.now(), "000002"); + + subLectures = new ArrayList<>(); + subLectures.add(subLecture1); + subLectures.add(subLecture2); + + attendances = new ArrayList<>(); + attendance = new AttendanceDummy(1L, member, lecture, AttendanceStatus.ABSENT); + attendances.add(attendance); + + lecture.setOneToMany(subLectures, attendances); + } + + @Test + @DisplayName("행사 1차 출석을 했고, 2차 출석을 했으면 출석 처리가 된다.") + void getStatusTest() { + // given + SubAttendance subAttendance1 = new SubAttendanceDummy(1L, attendance, subLecture1, AttendanceStatus.ATTENDANCE); + SubAttendance subAttendance2 = new SubAttendanceDummy(2L, attendance, subLecture2, AttendanceStatus.ATTENDANCE); + + // when + AttendanceStatus attendanceStatus = attendance.getStatus(); + + // then + assertThat(attendanceStatus).isEqualTo(AttendanceStatus.ATTENDANCE); + } + + @Test + @DisplayName("행사에서 1차 출석을 했고, 2차 출석을 결석했으면 지각 처리가 된다.") + void getStatusTest2() { + // given + SubAttendance subAttendance1 = new SubAttendanceDummy(1L, attendance, subLecture1, AttendanceStatus.ATTENDANCE); + SubAttendance subAttendance2 = new SubAttendanceDummy(2L, attendance, subLecture2, AttendanceStatus.ABSENT); + + // when + AttendanceStatus attendanceStatus = attendance.getStatus(); + + // then + assertThat(attendanceStatus).isEqualTo(AttendanceStatus.TARDY); + } + + @Test + @DisplayName("행사에서 1차 출석을 결석했고, 2차 출석을 했으면 지각 처리가 된다.") + void getStatusTest3() { + // given + SubAttendance subAttendance1 = new SubAttendanceDummy(1L, attendance, subLecture1, AttendanceStatus.ABSENT); + SubAttendance subAttendance2 = new SubAttendanceDummy(2L, attendance, subLecture2, AttendanceStatus.ATTENDANCE); + + // when + AttendanceStatus attendanceStatus = attendance.getStatus(); + + // then + assertThat(attendanceStatus).isEqualTo(AttendanceStatus.TARDY); + } + + @Test + @DisplayName("행사에서 1차 출석을 결석했고, 2차 출석을 결석했으면 결석 처리가 된다.") + void getStatusTest4() { + // given + SubAttendance subAttendance1 = new SubAttendanceDummy(1L, attendance, subLecture1, AttendanceStatus.ABSENT); + SubAttendance subAttendance2 = new SubAttendanceDummy(2L, attendance, subLecture2, AttendanceStatus.ABSENT); + + // when + AttendanceStatus attendanceStatus = attendance.getStatus(); + + // then + assertThat(attendanceStatus).isEqualTo(AttendanceStatus.ABSENT); + } } - } \ No newline at end of file