test #426
@@ -1,8 +1,8 @@
|
|||||||
package kr.co.vividnext.sodalive.v2.chat.controller
|
package kr.co.vividnext.sodalive.v2.chat.controller
|
||||||
|
|
||||||
import kr.co.vividnext.sodalive.common.ApiResponse
|
import kr.co.vividnext.sodalive.common.ApiResponse
|
||||||
import kr.co.vividnext.sodalive.common.SodaException
|
|
||||||
import kr.co.vividnext.sodalive.member.Member
|
import kr.co.vividnext.sodalive.member.Member
|
||||||
|
import kr.co.vividnext.sodalive.v2.chat.dto.ChatRoomListPageResponse
|
||||||
import kr.co.vividnext.sodalive.v2.chat.service.ChatRoomListService
|
import kr.co.vividnext.sodalive.v2.chat.service.ChatRoomListService
|
||||||
import org.springframework.security.core.annotation.AuthenticationPrincipal
|
import org.springframework.security.core.annotation.AuthenticationPrincipal
|
||||||
import org.springframework.web.bind.annotation.GetMapping
|
import org.springframework.web.bind.annotation.GetMapping
|
||||||
@@ -22,7 +22,7 @@ class ChatRoomListController(
|
|||||||
@RequestParam(required = false) cursor: String?,
|
@RequestParam(required = false) cursor: String?,
|
||||||
@RequestParam(defaultValue = "30") limit: Int
|
@RequestParam(defaultValue = "30") limit: Int
|
||||||
) = run {
|
) = run {
|
||||||
if (member == null) throw SodaException(messageKey = "common.error.bad_credentials")
|
if (member == null) return@run ApiResponse.ok(ChatRoomListPageResponse(emptyList(), false, null))
|
||||||
ApiResponse.ok(service.getRooms(member, filter, cursor, limit))
|
ApiResponse.ok(service.getRooms(member, filter, cursor, limit))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,56 @@
|
|||||||
|
package kr.co.vividnext.sodalive.v2.chat
|
||||||
|
|
||||||
|
import kr.co.vividnext.sodalive.member.Member
|
||||||
|
import kr.co.vividnext.sodalive.v2.chat.controller.ChatRoomListController
|
||||||
|
import kr.co.vividnext.sodalive.v2.chat.dto.ChatRoomListItemResponse
|
||||||
|
import kr.co.vividnext.sodalive.v2.chat.dto.ChatRoomListPageResponse
|
||||||
|
import kr.co.vividnext.sodalive.v2.chat.service.ChatRoomListService
|
||||||
|
import org.junit.jupiter.api.Assertions.assertEquals
|
||||||
|
import org.junit.jupiter.api.Assertions.assertFalse
|
||||||
|
import org.junit.jupiter.api.Assertions.assertNull
|
||||||
|
import org.junit.jupiter.api.Assertions.assertTrue
|
||||||
|
import org.junit.jupiter.api.BeforeEach
|
||||||
|
import org.junit.jupiter.api.DisplayName
|
||||||
|
import org.junit.jupiter.api.Test
|
||||||
|
import org.mockito.Mockito
|
||||||
|
|
||||||
|
class ChatRoomListControllerTest {
|
||||||
|
private lateinit var service: ChatRoomListService
|
||||||
|
private lateinit var controller: ChatRoomListController
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
fun setUp() {
|
||||||
|
service = Mockito.mock(ChatRoomListService::class.java)
|
||||||
|
controller = ChatRoomListController(service)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("채팅 리스트 조회는 비로그인 사용자에게 빈 목록을 반환한다")
|
||||||
|
fun shouldReturnEmptyRoomsForAnonymousUser() {
|
||||||
|
val response = controller.getRooms(member = null, filter = "ALL", cursor = null, limit = 30)
|
||||||
|
|
||||||
|
assertTrue(response.success)
|
||||||
|
assertEquals(emptyList<ChatRoomListItemResponse>(), response.data?.rooms)
|
||||||
|
assertFalse(response.data?.hasMore ?: true)
|
||||||
|
assertNull(response.data?.nextCursor)
|
||||||
|
Mockito.verifyNoInteractions(service)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@DisplayName("채팅 리스트 조회는 로그인 사용자의 요청을 서비스에 위임한다")
|
||||||
|
fun shouldDelegateAuthenticatedRequestToService() {
|
||||||
|
val member = Member(password = "pw", nickname = "user").apply { id = 1L }
|
||||||
|
val serviceResponse = ChatRoomListPageResponse(
|
||||||
|
rooms = emptyList(),
|
||||||
|
hasMore = false,
|
||||||
|
nextCursor = null
|
||||||
|
)
|
||||||
|
Mockito.`when`(service.getRooms(member, "DM", "cursor", 10)).thenReturn(serviceResponse)
|
||||||
|
|
||||||
|
val response = controller.getRooms(member = member, filter = "DM", cursor = "cursor", limit = 10)
|
||||||
|
|
||||||
|
assertTrue(response.success)
|
||||||
|
assertEquals(serviceResponse, response.data)
|
||||||
|
Mockito.verify(service).getRooms(member, "DM", "cursor", 10)
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user