feat : Owner 클래스 추가

This commit is contained in:
banjjoknim
2022-03-12 13:02:39 +09:00
parent e62b1dd7aa
commit 889ff261a8
3 changed files with 15 additions and 6 deletions

View File

@@ -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
)

View File

@@ -0,0 +1,3 @@
package com.banjjoknim.playground.model
data class Owner(val name: String, val age: Int)

View File

@@ -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())