Skip to content

Commit e5a8603

Browse files
committed
fix: 총 회차보다 더 많은 수업 추가 못하도록 수정
1 parent ebf0f90 commit e5a8603

File tree

3 files changed

+32
-36
lines changed

3 files changed

+32
-36
lines changed

src/main/java/com/tnt/application/pt/PtService.java

+8-5
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import java.time.LocalDateTime;
1616
import java.util.LinkedHashMap;
1717
import java.util.List;
18-
import java.util.Objects;
1918
import java.util.stream.Collectors;
2019
import java.util.stream.Stream;
2120

@@ -26,6 +25,7 @@
2625
import com.tnt.application.trainee.PtGoalService;
2726
import com.tnt.application.trainee.TraineeService;
2827
import com.tnt.application.trainer.TrainerService;
28+
import com.tnt.common.error.exception.BadRequestException;
2929
import com.tnt.common.error.exception.ConflictException;
3030
import com.tnt.common.error.exception.NotFoundException;
3131
import com.tnt.domain.member.Member;
@@ -368,9 +368,6 @@ private int validateAndGetNextSession(PtTrainerTrainee ptTrainerTrainee, LocalDa
368368
int temp = 0;
369369

370370
if (!lessonsForTrainee.isEmpty()) {
371-
if (Objects.equals(lessonsForTrainee.getLast().getSession(), ptTrainerTrainee.getTotalPtCount())) {
372-
throw new ConflictException(PT_LESSON_OVERFLOW);
373-
}
374371

375372
for (PtLesson toCompare : lessonsForTrainee) {
376373
if (toCompare.getLessonStart().isBefore(start)) {
@@ -387,6 +384,12 @@ private int validateAndGetNextSession(PtTrainerTrainee ptTrainerTrainee, LocalDa
387384
}
388385
}
389386

390-
return ptTrainerTrainee.getFinishedPtCount() + 1 + temp;
387+
int nextSession = ptTrainerTrainee.getFinishedPtCount() + 1 + temp;
388+
389+
if (nextSession > ptTrainerTrainee.getTotalPtCount()) {
390+
throw new BadRequestException(PT_LESSON_OVERFLOW);
391+
}
392+
393+
return nextSession;
391394
}
392395
}

src/test/java/com/tnt/fixture/PtTrainerTraineeFixture.java

+14
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,18 @@ public static PtTrainerTrainee getPtTrainerTrainee3(Trainer trainer, Trainee tra
4949
.totalPtCount(totalPtCount)
5050
.build();
5151
}
52+
53+
public static PtTrainerTrainee getPtTrainerTrainee4(Trainer trainer, Trainee trainee) {
54+
LocalDate startDate = LocalDate.of(2025, 1, 1);
55+
Integer totalPtCount = 1;
56+
Integer finishedPtCount = 1;
57+
58+
return PtTrainerTrainee.builder()
59+
.trainer(trainer)
60+
.trainee(trainee)
61+
.startedAt(startDate)
62+
.finishedPtCount(finishedPtCount)
63+
.totalPtCount(totalPtCount)
64+
.build();
65+
}
5266
}

src/test/java/com/tnt/presentation/trainer/TrainerControllerTest.java

+10-31
Original file line numberDiff line numberDiff line change
@@ -972,45 +972,24 @@ void add_pt_lesson_fail2() throws Exception {
972972
trainer = trainerRepository.save(trainer);
973973
trainee = traineeRepository.save(trainee);
974974

975-
PtTrainerTrainee ptTrainerTrainee = PtTrainerTraineeFixture.getPtTrainerTrainee3(trainer, trainee);
975+
PtTrainerTrainee ptTrainerTrainee = PtTrainerTraineeFixture.getPtTrainerTrainee4(trainer, trainee);
976976

977977
ptTrainerTraineeRepository.save(ptTrainerTrainee);
978978

979-
PtGoal ptGoal1 = PtGoal.builder()
980-
.traineeId(trainee.getId())
981-
.content("다이어트")
982-
.build();
983-
984-
PtGoal ptGoal2 = PtGoal.builder()
985-
.traineeId(trainee.getId())
986-
.content("체중 감량")
987-
.build();
988-
989-
ptGoalRepository.saveAll(List.of(ptGoal1, ptGoal2));
990-
991979
LocalDateTime startDate1 = LocalDateTime.parse("2025-02-01T11:30");
992980
LocalDateTime endDate1 = LocalDateTime.parse("2025-02-01T13:00");
993981

994-
LocalDateTime startDate2 = LocalDateTime.parse("2025-02-07T11:30");
995-
LocalDateTime endDate2 = LocalDateTime.parse("2025-02-07T13:00");
996-
997-
List<PtLesson> ptLessons = List.of(PtLesson.builder()
998-
.ptTrainerTrainee(ptTrainerTrainee)
999-
.session(9)
1000-
.lessonStart(startDate1)
1001-
.lessonEnd(endDate1)
1002-
.build(),
1003-
PtLesson.builder()
1004-
.ptTrainerTrainee(ptTrainerTrainee)
1005-
.session(10)
1006-
.lessonStart(startDate2)
1007-
.lessonEnd(endDate2)
1008-
.build());
982+
PtLesson ptLessons = PtLesson.builder()
983+
.ptTrainerTrainee(ptTrainerTrainee)
984+
.session(1)
985+
.lessonStart(startDate1)
986+
.lessonEnd(endDate1)
987+
.build();
1009988

1010-
ptLessonRepository.saveAll(ptLessons);
989+
ptLessonRepository.save(ptLessons);
1011990

1012-
LocalDateTime start = LocalDateTime.of(2025, 1, 1, 10, 30);
1013-
LocalDateTime end = LocalDateTime.of(2025, 1, 1, 11, 30);
991+
LocalDateTime start = LocalDateTime.of(2025, 2, 2, 10, 30);
992+
LocalDateTime end = LocalDateTime.of(2025, 2, 2, 11, 30);
1014993
String memo = "THIS IS MEMO";
1015994

1016995
CreatePtLessonRequest request = new CreatePtLessonRequest(start, end, memo, trainee.getId());

0 commit comments

Comments
 (0)