feat(user-creator-chat): DM 생성 수신자 필드를 일반화한다

This commit is contained in:
2026-09-14 14:50:44 +09:00
parent 70f717aa6d
commit de1a9eb114
3 changed files with 56 additions and 3 deletions
@@ -1,7 +1,13 @@
package kr.co.vividnext.sodalive.v2.usercreatorchat
import kr.co.vividnext.sodalive.common.SodaException
import kr.co.vividnext.sodalive.member.Member
import kr.co.vividnext.sodalive.v2.usercreatorchat.controller.UserCreatorChatController
import kr.co.vividnext.sodalive.v2.usercreatorchat.dto.CreateUserCreatorChatRoomRequest
import kr.co.vividnext.sodalive.v2.usercreatorchat.dto.CreateUserCreatorChatRoomResponse
import kr.co.vividnext.sodalive.v2.usercreatorchat.service.UserCreatorChatService
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Assertions.assertThrows
import org.junit.jupiter.api.Test
import org.mockito.Mockito
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get
@@ -23,4 +29,41 @@ class UserCreatorChatControllerMappingTest {
mockMvc.perform(post("/api/v2/user-creator-chat/rooms/10/messages/text"))
.andExpect(status().isNotFound)
}
@Test
fun shouldCreateRoomWithRecipientId() {
val service = Mockito.mock(UserCreatorChatService::class.java)
val controller = UserCreatorChatController(service)
val member = Member(email = "creator@test.com", password = "pw", nickname = "creator").apply { id = 10L }
Mockito.`when`(service.createOrGetRoom(member, 20L))
.thenReturn(CreateUserCreatorChatRoomResponse(roomId = 30L))
val response = controller.createOrGetRoom(
member,
CreateUserCreatorChatRoomRequest(recipientId = 20L, creatorId = null)
)
Mockito.verify(service).createOrGetRoom(member, 20L)
assertEquals(30L, response.data!!.roomId)
}
@Test
fun shouldCreateRoomWithLegacyCreatorId() {
val request = CreateUserCreatorChatRoomRequest(recipientId = null, creatorId = 20L)
assertEquals(20L, request.recipientMemberId())
}
@Test
fun shouldRejectMissingOrConflictingRecipientIds() {
val missing = assertThrows(SodaException::class.java) {
CreateUserCreatorChatRoomRequest(recipientId = null, creatorId = null).recipientMemberId()
}
assertEquals("common.error.invalid_request", missing.messageKey)
val conflict = assertThrows(SodaException::class.java) {
CreateUserCreatorChatRoomRequest(recipientId = 20L, creatorId = 21L).recipientMemberId()
}
assertEquals("common.error.invalid_request", conflict.messageKey)
}
}