Skip to content

Commit 991ece7

Browse files
committed
Test/Feat : 유효성 검증 추가 및 테스트 추가
1 parent 96a4e18 commit 991ece7

File tree

2 files changed

+24
-5
lines changed

2 files changed

+24
-5
lines changed

back/src/main/java/com/back/domain/mentoring/session/entity/ChatMessage.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,13 @@ public static ChatMessage create(MentoringSession mentoringSession, Member sende
7070
if (senderRole != SenderRole.MENTOR && senderRole != SenderRole.MENTEE) {
7171
throw new IllegalArgumentException("일반 메시지의 senderRole은 MENTOR 또는 MENTEE여야 합니다.");
7272
}
73+
74+
boolean isParticipant = (mentoringSession.getReservation().getMentor().isMember(sender) ||
75+
mentoringSession.getReservation().getMentee().isMember(sender));
76+
77+
if (!isParticipant) {
78+
throw new IllegalArgumentException("메시지 발신자는 해당 멘토링 세션의 참여자가 아닙니다.");
79+
}
7380
}
7481

7582
return ChatMessage.builder()

back/src/test/java/com/back/domain/mentoring/session/entity/ChatMessageTest.java

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,21 @@
55
import com.back.fixture.MemberFixture;
66
import com.back.fixture.mentoring.MentoringSessionFixture;
77
import org.junit.jupiter.api.DisplayName;
8+
import org.junit.jupiter.api.Nested;
89
import org.junit.jupiter.api.Test;
910

1011
import java.time.LocalDateTime;
1112

1213
import static org.assertj.core.api.Assertions.assertThat;
13-
14-
import org.junit.jupiter.api.Nested;
15-
1614
import static org.junit.jupiter.api.Assertions.assertThrows;
1715

1816
class ChatMessageTest {
1917
@Test
2018
@DisplayName("ChatMessage 생성 테스트")
21-
void createChatMessageTest(){
19+
void createChatMessageTest() {
2220
// given
2321
MentoringSession session = MentoringSessionFixture.createDefault();
24-
Member sender = MemberFixture.createDefault();
22+
Member sender = session.getReservation().getMentor().getMember();
2523
String content = "Hello world";
2624
SenderRole senderRole = SenderRole.MENTOR;
2725
MessageType type = MessageType.TEXT;
@@ -121,5 +119,19 @@ void createUserMessageWithInvalidRole_shouldThrowException() {
121119
assertThrows(IllegalArgumentException.class, () ->
122120
ChatMessage.create(MentoringSessionFixture.createDefault(), MemberFixture.createDefault(), SenderRole.SYSTEM, "user message", MessageType.TEXT));
123121
}
122+
123+
@Test
124+
@DisplayName("메시지 발신자가 멘토링 참여자가 아니면 예외가 발생한다")
125+
void createWithNonParticipantSender_shouldThrowException() {
126+
// given
127+
MentoringSession session = MentoringSessionFixture.createDefault();
128+
Member nonParticipant = MemberFixture.create(99L, "[email protected]", "외부인", "password", Member.Role.MENTEE);
129+
130+
// when & then
131+
IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () ->
132+
ChatMessage.create(session, nonParticipant, SenderRole.MENTOR, "some message", MessageType.TEXT));
133+
134+
assertThat(exception.getMessage()).isEqualTo("메시지 발신자는 해당 멘토링 세션의 참여자가 아닙니다.");
135+
}
124136
}
125137
}

0 commit comments

Comments
 (0)