54 lines
1.7 KiB
Kotlin

package roomescape.region
import com.ninjasquad.springmockk.MockkBean
import io.mockk.every
import org.springframework.http.HttpMethod
import roomescape.region.exception.RegionErrorCode
import roomescape.region.infrastructure.persistence.RegionRepository
import roomescape.supports.FunSpecSpringbootTest
import roomescape.supports.runExceptionTest
class RegionApiFailTest(
@MockkBean private val regionRepository: RegionRepository
): FunSpecSpringbootTest() {
init {
context("조회 실패") {
test("시/도") {
every {
regionRepository.readAllSido()
} returns emptyList()
runExceptionTest(
method = HttpMethod.GET,
endpoint = "/regions/sido",
expectedErrorCode = RegionErrorCode.SIDO_CODE_NOT_FOUND,
)
}
test("시/군/구") {
every {
regionRepository.findAllSigunguBySido(any())
} returns emptyList()
runExceptionTest(
method = HttpMethod.GET,
endpoint = "/regions/sigungu?sidoCode=11",
expectedErrorCode = RegionErrorCode.SIGUNGU_CODE_NOT_FOUND,
)
}
test("지역 코드") {
every {
regionRepository.findRegionCode(any(), any())
} returns null
runExceptionTest(
method = HttpMethod.GET,
endpoint = "/regions/code?sidoCode=11&sigunguCode=110",
expectedErrorCode = RegionErrorCode.REGION_CODE_NOT_FOUND,
)
}
}
}
}