diff --git a/src/test/kotlin/roomescape/supports/RestAssuredUtils.kt b/src/test/kotlin/roomescape/supports/RestAssuredUtils.kt index 31aaa1c7..689184d2 100644 --- a/src/test/kotlin/roomescape/supports/RestAssuredUtils.kt +++ b/src/test/kotlin/roomescape/supports/RestAssuredUtils.kt @@ -1,5 +1,6 @@ package roomescape.supports +import com.fasterxml.jackson.module.kotlin.convertValue import io.restassured.module.kotlin.extensions.Given import io.restassured.module.kotlin.extensions.Then import io.restassured.module.kotlin.extensions.When @@ -9,6 +10,7 @@ import io.restassured.specification.RequestSpecification import org.hamcrest.CoreMatchers.equalTo import org.springframework.http.HttpMethod import org.springframework.http.MediaType +import roomescape.common.config.JacksonConfig import roomescape.common.exception.ErrorCode fun runTest( @@ -96,3 +98,15 @@ fun ValidatableResponse.assertProperties(props: Set, propsNameIfList: St else -> error("Unexpected data type: ${json::class}") } } + +object ResponseParser { + val objectMapper = JacksonConfig().objectMapper() + + inline fun parseListResponse(response: List>): List { + return response.map { objectMapper.convertValue(it) } + } + + inline fun parseSingleResponse(response: LinkedHashMap): T { + return objectMapper.convertValue(response) + } +}