From 63f0eac1bb660da448688c447001dbb72479501b Mon Sep 17 00:00:00 2001 From: pricelees Date: Tue, 15 Jul 2025 11:26:41 +0900 Subject: [PATCH] =?UTF-8?q?test:=20=ED=81=B4=EB=9E=98=EC=8A=A4=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=EC=9C=BC=EB=A1=9C=20=EB=AF=B8=EC=82=AC=EC=9A=A9?= =?UTF-8?q?=EB=90=98=EB=8A=94=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=A3=BC?= =?UTF-8?q?=EC=84=9D=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 다음 작업에서 템플릿 사용후 제거 예정 --- .../response/RoomescapeApiResponseKTTest.kt | 316 +++++++++--------- 1 file changed, 158 insertions(+), 158 deletions(-) diff --git a/src/test/java/roomescape/common/dto/response/RoomescapeApiResponseKTTest.kt b/src/test/java/roomescape/common/dto/response/RoomescapeApiResponseKTTest.kt index 5ca55169..447a3db7 100644 --- a/src/test/java/roomescape/common/dto/response/RoomescapeApiResponseKTTest.kt +++ b/src/test/java/roomescape/common/dto/response/RoomescapeApiResponseKTTest.kt @@ -1,158 +1,158 @@ -package roomescape.common.dto.response - -import com.fasterxml.jackson.databind.ObjectMapper -import com.ninjasquad.springmockk.MockkBean -import com.ninjasquad.springmockk.SpykBean -import io.kotest.core.spec.style.BehaviorSpec -import org.hamcrest.CoreMatchers.equalTo -import org.springframework.beans.factory.annotation.Autowired -import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest -import org.springframework.http.MediaType -import org.springframework.test.web.servlet.MockMvc -import org.springframework.test.web.servlet.get -import org.springframework.test.web.servlet.post -import org.springframework.web.bind.annotation.* -import roomescape.auth.infrastructure.jwt.JwtHandler -import roomescape.auth.web.support.AdminInterceptor -import roomescape.auth.web.support.LoginInterceptor -import roomescape.auth.web.support.MemberIdResolver -import roomescape.common.exception.ErrorType -import roomescape.member.business.MemberService -import roomescape.member.infrastructure.persistence.MemberRepository - -@WebMvcTest(ApiResponseTestController::class) -class RoomescapeApiResponseKTTest( - @Autowired private val mockMvc: MockMvc -) : BehaviorSpec() { - @Autowired - private lateinit var AdminInterceptor: AdminInterceptor - - @Autowired - private lateinit var loginInterceptor: LoginInterceptor - - @Autowired - private lateinit var memberIdResolver: MemberIdResolver - - @SpykBean - private lateinit var memberService: MemberService - - @MockkBean - private lateinit var memberRepository: MemberRepository - - @MockkBean - private lateinit var jwtHandler: JwtHandler - - init { - Given("성공 응답에") { - val endpoint = "/success" - When("객체 데이터를 담으면") { - val id: Long = 1L - val name = "name" - Then("success=true, data={객체} 형태로 응답한다.") { - mockMvc.post("$endpoint/$id/$name") { - contentType = MediaType.APPLICATION_JSON - }.andDo { - print() - }.andExpect { - status { isOk() } - jsonPath("$.success", equalTo(true)) - jsonPath("$.data.id", equalTo(id.toInt())) - jsonPath("$.data.name", equalTo(name)) - } - } - } - - When("문자열 데이터를 담으면") { - val message: String = "Hello, World!" - - Then("success=true, data={문자열} 형태로 응답한다.") { - mockMvc.get("/success/$message") { - contentType = MediaType.APPLICATION_JSON - }.andDo { - print() - }.andExpect { - status { isOk() } - jsonPath("$.success", equalTo(true)) - jsonPath("$.data", equalTo(message)) - } - } - } - } - - Given("실패 응답에") { - val endpoint = "/fail" - val objectMapper = ObjectMapper() - - When("errorType만 담으면") { - Then("success=false, errorType={errorType}, message={errorType.description} 형태로 응답한다.") { - mockMvc.post(endpoint) { - contentType = MediaType.APPLICATION_JSON - content = objectMapper.writeValueAsString(FailRequest(errorType = ErrorType.INTERNAL_SERVER_ERROR)) - }.andDo { - print() - }.andExpect { - status { isOk() } - jsonPath("$.success", equalTo(false)) - jsonPath("$.errorType", equalTo(ErrorType.INTERNAL_SERVER_ERROR.name)) - jsonPath("$.message", equalTo(ErrorType.INTERNAL_SERVER_ERROR.description)) - } - } - } - - When("errorType과 message를 담으면") { - val message: String = "An error occurred" - - Then("success=false, errorType={errorType}, message={message} 형태로 응답한다.") { - mockMvc.post(endpoint) { - contentType = MediaType.APPLICATION_JSON - content = objectMapper.writeValueAsString(FailRequest(errorType = ErrorType.INTERNAL_SERVER_ERROR, message = message)) - }.andDo { - print() - }.andExpect { - status { isOk() } - jsonPath("$.success", equalTo(false)) - jsonPath("$.errorType", equalTo(ErrorType.INTERNAL_SERVER_ERROR.name)) - jsonPath("$.message", equalTo(message)) - } - } - } - } - } -} - -data class SuccessResponse( - val id: Long, - val name: String -) - -data class FailRequest( - val errorType: ErrorType, - val message: String? = null -) - -@RestController -class ApiResponseTestController { - - @GetMapping("/success/{message}") - fun succeedToGet( - @PathVariable message: String, - ): RoomescapeApiResponseKT = - RoomescapeApiResponseKT.success(message) - - - @PostMapping("/success/{id}/{name}") - fun succeedToPost( - @PathVariable id: Long, - @PathVariable name: String, - ): RoomescapeApiResponseKT = - RoomescapeApiResponseKT.success(SuccessResponse(id, name)) - - - @PostMapping("/fail") - fun fail( - @RequestBody request: FailRequest - ): RoomescapeApiResponseKT = - request.message?.let { - RoomescapeApiResponseKT.fail(request.errorType, it) - } ?: RoomescapeApiResponseKT.fail(request.errorType) -} +//package roomescape.common.dto.response +// +//import com.fasterxml.jackson.databind.ObjectMapper +//import com.ninjasquad.springmockk.MockkBean +//import com.ninjasquad.springmockk.SpykBean +//import io.kotest.core.spec.style.BehaviorSpec +//import org.hamcrest.CoreMatchers.equalTo +//import org.springframework.beans.factory.annotation.Autowired +//import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest +//import org.springframework.http.MediaType +//import org.springframework.test.web.servlet.MockMvc +//import org.springframework.test.web.servlet.get +//import org.springframework.test.web.servlet.post +//import org.springframework.web.bind.annotation.* +//import roomescape.auth.infrastructure.jwt.JwtHandler +//import roomescape.auth.web.support.AdminInterceptor +//import roomescape.auth.web.support.LoginInterceptor +//import roomescape.auth.web.support.MemberIdResolver +//import roomescape.common.exception.ErrorType +//import roomescape.member.business.MemberService +//import roomescape.member.infrastructure.persistence.MemberRepository +// +//@WebMvcTest(ApiResponseTestController::class) +//class RoomescapeApiResponseKTTest( +// @Autowired private val mockMvc: MockMvc +//) : BehaviorSpec() { +// @Autowired +// private lateinit var AdminInterceptor: AdminInterceptor +// +// @Autowired +// private lateinit var loginInterceptor: LoginInterceptor +// +// @Autowired +// private lateinit var memberIdResolver: MemberIdResolver +// +// @SpykBean +// private lateinit var memberService: MemberService +// +// @MockkBean +// private lateinit var memberRepository: MemberRepository +// +// @MockkBean +// private lateinit var jwtHandler: JwtHandler +// +// init { +// Given("성공 응답에") { +// val endpoint = "/success" +// When("객체 데이터를 담으면") { +// val id: Long = 1L +// val name = "name" +// Then("success=true, data={객체} 형태로 응답한다.") { +// mockMvc.post("$endpoint/$id/$name") { +// contentType = MediaType.APPLICATION_JSON +// }.andDo { +// print() +// }.andExpect { +// status { isOk() } +// jsonPath("$.success", equalTo(true)) +// jsonPath("$.data.id", equalTo(id.toInt())) +// jsonPath("$.data.name", equalTo(name)) +// } +// } +// } +// +// When("문자열 데이터를 담으면") { +// val message: String = "Hello, World!" +// +// Then("success=true, data={문자열} 형태로 응답한다.") { +// mockMvc.get("/success/$message") { +// contentType = MediaType.APPLICATION_JSON +// }.andDo { +// print() +// }.andExpect { +// status { isOk() } +// jsonPath("$.success", equalTo(true)) +// jsonPath("$.data", equalTo(message)) +// } +// } +// } +// } +// +// Given("실패 응답에") { +// val endpoint = "/fail" +// val objectMapper = ObjectMapper() +// +// When("errorType만 담으면") { +// Then("success=false, errorType={errorType}, message={errorType.description} 형태로 응답한다.") { +// mockMvc.post(endpoint) { +// contentType = MediaType.APPLICATION_JSON +// content = objectMapper.writeValueAsString(FailRequest(errorType = ErrorType.INTERNAL_SERVER_ERROR)) +// }.andDo { +// print() +// }.andExpect { +// status { isOk() } +// jsonPath("$.success", equalTo(false)) +// jsonPath("$.errorType", equalTo(ErrorType.INTERNAL_SERVER_ERROR.name)) +// jsonPath("$.message", equalTo(ErrorType.INTERNAL_SERVER_ERROR.description)) +// } +// } +// } +// +// When("errorType과 message를 담으면") { +// val message: String = "An error occurred" +// +// Then("success=false, errorType={errorType}, message={message} 형태로 응답한다.") { +// mockMvc.post(endpoint) { +// contentType = MediaType.APPLICATION_JSON +// content = objectMapper.writeValueAsString(FailRequest(errorType = ErrorType.INTERNAL_SERVER_ERROR, message = message)) +// }.andDo { +// print() +// }.andExpect { +// status { isOk() } +// jsonPath("$.success", equalTo(false)) +// jsonPath("$.errorType", equalTo(ErrorType.INTERNAL_SERVER_ERROR.name)) +// jsonPath("$.message", equalTo(message)) +// } +// } +// } +// } +// } +//} +// +//data class SuccessResponse( +// val id: Long, +// val name: String +//) +// +//data class FailRequest( +// val errorType: ErrorType, +// val message: String? = null +//) +// +//@RestController +//class ApiResponseTestController { +// +// @GetMapping("/success/{message}") +// fun succeedToGet( +// @PathVariable message: String, +// ): RoomescapeApiResponseKT = +// RoomescapeApiResponseKT.success(message) +// +// +// @PostMapping("/success/{id}/{name}") +// fun succeedToPost( +// @PathVariable id: Long, +// @PathVariable name: String, +// ): RoomescapeApiResponseKT = +// RoomescapeApiResponseKT.success(SuccessResponse(id, name)) +// +// +// @PostMapping("/fail") +// fun fail( +// @RequestBody request: FailRequest +// ): RoomescapeApiResponseKT = +// request.message?.let { +// RoomescapeApiResponseKT.fail(request.errorType, it) +// } ?: RoomescapeApiResponseKT.fail(request.errorType) +//}