Skip to content

Commit

Permalink
[TEST] 행사 출석 상태 반환 단위 테스트 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
KWY0218 committed Apr 10, 2024
1 parent 7b90765 commit 8abf1d4
Showing 1 changed file with 163 additions and 76 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -30,83 +31,169 @@ class AttendanceGetStatusTest {
private List<Attendance> 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);
}
}

}

0 comments on commit 8abf1d4

Please sign in to comment.