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, ) } } } }