feat : Owner 클래스 추가
This commit is contained in:
@@ -1,3 +1,7 @@
|
|||||||
package com.banjjoknim.playground.model
|
package com.banjjoknim.playground.model
|
||||||
|
|
||||||
data class Car(val name: String, val price: Int = 0)
|
data class Car(
|
||||||
|
val name: String,
|
||||||
|
val price: Int = 0,
|
||||||
|
val owner: Owner
|
||||||
|
)
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
package com.banjjoknim.playground.model
|
||||||
|
|
||||||
|
data class Owner(val name: String, val age: Int)
|
||||||
@@ -4,6 +4,7 @@ import com.banjjoknim.playground.jackson.jsonserialize.CarNameSerializer
|
|||||||
import com.banjjoknim.playground.jackson.jsonserialize.CarPriceSerializer
|
import com.banjjoknim.playground.jackson.jsonserialize.CarPriceSerializer
|
||||||
import com.banjjoknim.playground.jackson.jsonserialize.CarSerializer
|
import com.banjjoknim.playground.jackson.jsonserialize.CarSerializer
|
||||||
import com.banjjoknim.playground.model.Car
|
import com.banjjoknim.playground.model.Car
|
||||||
|
import com.banjjoknim.playground.model.Owner
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper
|
import com.fasterxml.jackson.databind.ObjectMapper
|
||||||
import com.fasterxml.jackson.databind.module.SimpleModule
|
import com.fasterxml.jackson.databind.module.SimpleModule
|
||||||
import com.fasterxml.jackson.module.kotlin.registerKotlinModule
|
import com.fasterxml.jackson.module.kotlin.registerKotlinModule
|
||||||
@@ -27,7 +28,8 @@ class CarSerializerTest {
|
|||||||
private lateinit var mapper: ObjectMapper
|
private lateinit var mapper: ObjectMapper
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val car = Car("banjjoknim", 10_000_000)
|
private val owner = Owner("ban", 30)
|
||||||
|
private val car = Car("banjjoknim", 10_000_000, owner)
|
||||||
}
|
}
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
@@ -43,14 +45,14 @@ class CarSerializerTest {
|
|||||||
val result = mapper.writeValueAsString(car)
|
val result = mapper.writeValueAsString(car)
|
||||||
|
|
||||||
// then
|
// then
|
||||||
assertThat(result).isEqualTo("""{"name":"banjjoknim","price":10000000}""")
|
assertThat(result).isEqualTo("""{"name":"banjjoknim","price":10000000,"owner":{"name":"ban","age":30}}""")
|
||||||
}
|
}
|
||||||
|
|
||||||
@DisplayName("등록된 커스텀 직렬화기의 동작을 테스트한다")
|
@DisplayName("등록된 커스텀 직렬화기의 동작을 테스트한다")
|
||||||
@Nested
|
@Nested
|
||||||
inner class CarSerializerTestCases {
|
inner class CarSerializerTestCases {
|
||||||
@Test
|
@Test
|
||||||
fun `모든 필드를 직렬화한다`() {
|
fun `자동차의 모든 필드만 직렬화한다`() {
|
||||||
// given
|
// given
|
||||||
val module = SimpleModule()
|
val module = SimpleModule()
|
||||||
module.addSerializer(Car::class.java, CarSerializer())
|
module.addSerializer(Car::class.java, CarSerializer())
|
||||||
@@ -64,7 +66,7 @@ class CarSerializerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `이름만 직렬화한다`() {
|
fun `자동차의 이름만 직렬화한다`() {
|
||||||
// given
|
// given
|
||||||
val module = SimpleModule()
|
val module = SimpleModule()
|
||||||
module.addSerializer(Car::class.java, CarNameSerializer())
|
module.addSerializer(Car::class.java, CarNameSerializer())
|
||||||
@@ -78,7 +80,7 @@ class CarSerializerTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `가격만 직렬화한다`() {
|
fun `자동차의 가격만 직렬화한다`() {
|
||||||
// given
|
// given
|
||||||
val module = SimpleModule()
|
val module = SimpleModule()
|
||||||
module.addSerializer(Car::class.java, CarPriceSerializer())
|
module.addSerializer(Car::class.java, CarPriceSerializer())
|
||||||
|
|||||||
Reference in New Issue
Block a user