generated from pricelees/issue-pr-template
[#20] 도메인별 예외 분리 #21
@ -17,11 +17,11 @@ import org.springframework.http.HttpHeaders
|
|||||||
import org.springframework.http.HttpStatus
|
import org.springframework.http.HttpStatus
|
||||||
import org.springframework.http.MediaType
|
import org.springframework.http.MediaType
|
||||||
import org.springframework.transaction.support.TransactionTemplate
|
import org.springframework.transaction.support.TransactionTemplate
|
||||||
import roomescape.auth.web.support.AdminInterceptor
|
import roomescape.auth.infrastructure.jwt.JwtHandler
|
||||||
import roomescape.auth.web.support.LoginInterceptor
|
|
||||||
import roomescape.auth.web.support.MemberIdResolver
|
import roomescape.auth.web.support.MemberIdResolver
|
||||||
import roomescape.common.exception.ErrorType
|
import roomescape.common.exception.ErrorType
|
||||||
import roomescape.common.exception.RoomescapeException
|
import roomescape.common.exception.RoomescapeException
|
||||||
|
import roomescape.member.business.MemberService
|
||||||
import roomescape.member.infrastructure.persistence.MemberEntity
|
import roomescape.member.infrastructure.persistence.MemberEntity
|
||||||
import roomescape.member.infrastructure.persistence.Role
|
import roomescape.member.infrastructure.persistence.Role
|
||||||
import roomescape.payment.infrastructure.client.TossPaymentClient
|
import roomescape.payment.infrastructure.client.TossPaymentClient
|
||||||
@ -45,15 +45,15 @@ class ReservationControllerTest(
|
|||||||
@MockkBean
|
@MockkBean
|
||||||
lateinit var paymentClient: TossPaymentClient
|
lateinit var paymentClient: TossPaymentClient
|
||||||
|
|
||||||
@SpykBean
|
|
||||||
lateinit var loginInterceptor: LoginInterceptor
|
|
||||||
|
|
||||||
@SpykBean
|
|
||||||
lateinit var adminInterceptor: AdminInterceptor
|
|
||||||
|
|
||||||
@SpykBean
|
@SpykBean
|
||||||
lateinit var memberIdResolver: MemberIdResolver
|
lateinit var memberIdResolver: MemberIdResolver
|
||||||
|
|
||||||
|
@SpykBean
|
||||||
|
lateinit var memberService: MemberService
|
||||||
|
|
||||||
|
@MockkBean
|
||||||
|
lateinit var jwtHandler: JwtHandler
|
||||||
|
|
||||||
init {
|
init {
|
||||||
context("POST /reservations") {
|
context("POST /reservations") {
|
||||||
lateinit var member: MemberEntity
|
lateinit var member: MemberEntity
|
||||||
@ -737,31 +737,18 @@ class ReservationControllerTest(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (member.isAdmin()) {
|
every {
|
||||||
loginAsAdmin()
|
jwtHandler.getMemberIdFromToken(any())
|
||||||
} else {
|
} returns member.id!!
|
||||||
loginAsUser()
|
|
||||||
}
|
every {
|
||||||
resolveMemberId(member.id!!)
|
memberService.findById(member.id!!)
|
||||||
|
} returns member
|
||||||
|
|
||||||
|
every {
|
||||||
|
memberIdResolver.resolveArgument(any(), any(), any(), any())
|
||||||
|
} returns member.id!!
|
||||||
|
|
||||||
return member
|
return member
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun loginAsUser() {
|
|
||||||
every {
|
|
||||||
loginInterceptor.preHandle(any(), any(), any())
|
|
||||||
} returns true
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun loginAsAdmin() {
|
|
||||||
every {
|
|
||||||
adminInterceptor.preHandle(any(), any(), any())
|
|
||||||
} returns true
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun resolveMemberId(memberId: Long) {
|
|
||||||
every {
|
|
||||||
memberIdResolver.resolveArgument(any(), any(), any(), any())
|
|
||||||
} returns memberId
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import io.mockk.runs
|
|||||||
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest
|
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest
|
||||||
import org.springframework.http.MediaType
|
import org.springframework.http.MediaType
|
||||||
import org.springframework.test.web.servlet.MockMvc
|
import org.springframework.test.web.servlet.MockMvc
|
||||||
|
import roomescape.auth.exception.AuthErrorCode
|
||||||
import roomescape.theme.business.ThemeService
|
import roomescape.theme.business.ThemeService
|
||||||
import roomescape.theme.infrastructure.persistence.ThemeRepository
|
import roomescape.theme.infrastructure.persistence.ThemeRepository
|
||||||
import roomescape.util.RoomescapeApiTest
|
import roomescape.util.RoomescapeApiTest
|
||||||
@ -108,7 +109,7 @@ class ThemeControllerTest(mockMvc: MockMvc) : RoomescapeApiTest() {
|
|||||||
body = request,
|
body = request,
|
||||||
) {
|
) {
|
||||||
status { is3xxRedirection() }
|
status { is3xxRedirection() }
|
||||||
jsonPath("$.errorType") { value("PERMISSION_DOES_NOT_EXIST") }
|
jsonPath("$.code") { value(AuthErrorCode.ACCESS_DENIED.errorCode) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -249,7 +250,7 @@ class ThemeControllerTest(mockMvc: MockMvc) : RoomescapeApiTest() {
|
|||||||
endpoint = endpoint,
|
endpoint = endpoint,
|
||||||
) {
|
) {
|
||||||
status { is3xxRedirection() }
|
status { is3xxRedirection() }
|
||||||
jsonPath("$.errorType") { value("PERMISSION_DOES_NOT_EXIST") }
|
jsonPath("$.code") { value(AuthErrorCode.ACCESS_DENIED.errorCode) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,8 +11,7 @@ import org.springframework.http.HttpStatus
|
|||||||
import org.springframework.http.MediaType
|
import org.springframework.http.MediaType
|
||||||
import org.springframework.test.web.servlet.*
|
import org.springframework.test.web.servlet.*
|
||||||
import roomescape.auth.infrastructure.jwt.JwtHandler
|
import roomescape.auth.infrastructure.jwt.JwtHandler
|
||||||
import roomescape.auth.web.support.AdminInterceptor
|
import roomescape.auth.web.support.AuthInterceptor
|
||||||
import roomescape.auth.web.support.LoginInterceptor
|
|
||||||
import roomescape.auth.web.support.MemberIdResolver
|
import roomescape.auth.web.support.MemberIdResolver
|
||||||
import roomescape.common.config.JacksonConfig
|
import roomescape.common.config.JacksonConfig
|
||||||
import roomescape.common.exception.ErrorType
|
import roomescape.common.exception.ErrorType
|
||||||
@ -25,10 +24,7 @@ import roomescape.util.MemberFixture.NOT_LOGGED_IN_USERID
|
|||||||
abstract class RoomescapeApiTest : BehaviorSpec() {
|
abstract class RoomescapeApiTest : BehaviorSpec() {
|
||||||
|
|
||||||
@SpykBean
|
@SpykBean
|
||||||
private lateinit var AdminInterceptor: AdminInterceptor
|
private lateinit var authInterceptor: AuthInterceptor
|
||||||
|
|
||||||
@SpykBean
|
|
||||||
private lateinit var loginInterceptor: LoginInterceptor
|
|
||||||
|
|
||||||
@SpykBean
|
@SpykBean
|
||||||
private lateinit var memberIdResolver: MemberIdResolver
|
private lateinit var memberIdResolver: MemberIdResolver
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user