From 889ff261a834e44bcc94977884a41aaf4ab1a160 Mon Sep 17 00:00:00 2001 From: banjjoknim Date: Sat, 12 Mar 2022 13:02:39 +0900 Subject: [PATCH] =?UTF-8?q?feat=20:=20Owner=20=ED=81=B4=EB=9E=98=EC=8A=A4?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/kotlin/com/banjjoknim/playground/model/Car.kt | 6 +++++- .../src/main/kotlin/com/banjjoknim/playground/model/Owner.kt | 3 +++ .../banjjoknim/playground/jsonserialize/CarSerializerTest.kt | 12 +++++++----- 3 files changed, 15 insertions(+), 6 deletions(-) create mode 100644 놀이터(예제 코드 작성)/jackson/src/main/kotlin/com/banjjoknim/playground/model/Owner.kt diff --git a/놀이터(예제 코드 작성)/jackson/src/main/kotlin/com/banjjoknim/playground/model/Car.kt b/놀이터(예제 코드 작성)/jackson/src/main/kotlin/com/banjjoknim/playground/model/Car.kt index 0fb98ca..7c77b39 100644 --- a/놀이터(예제 코드 작성)/jackson/src/main/kotlin/com/banjjoknim/playground/model/Car.kt +++ b/놀이터(예제 코드 작성)/jackson/src/main/kotlin/com/banjjoknim/playground/model/Car.kt @@ -1,3 +1,7 @@ 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 +) diff --git a/놀이터(예제 코드 작성)/jackson/src/main/kotlin/com/banjjoknim/playground/model/Owner.kt b/놀이터(예제 코드 작성)/jackson/src/main/kotlin/com/banjjoknim/playground/model/Owner.kt new file mode 100644 index 0000000..7bc25ae --- /dev/null +++ b/놀이터(예제 코드 작성)/jackson/src/main/kotlin/com/banjjoknim/playground/model/Owner.kt @@ -0,0 +1,3 @@ +package com.banjjoknim.playground.model + +data class Owner(val name: String, val age: Int) diff --git a/놀이터(예제 코드 작성)/jackson/src/test/kotlin/com/banjjoknim/playground/jsonserialize/CarSerializerTest.kt b/놀이터(예제 코드 작성)/jackson/src/test/kotlin/com/banjjoknim/playground/jsonserialize/CarSerializerTest.kt index f6ca284..0f30667 100644 --- a/놀이터(예제 코드 작성)/jackson/src/test/kotlin/com/banjjoknim/playground/jsonserialize/CarSerializerTest.kt +++ b/놀이터(예제 코드 작성)/jackson/src/test/kotlin/com/banjjoknim/playground/jsonserialize/CarSerializerTest.kt @@ -4,6 +4,7 @@ import com.banjjoknim.playground.jackson.jsonserialize.CarNameSerializer import com.banjjoknim.playground.jackson.jsonserialize.CarPriceSerializer import com.banjjoknim.playground.jackson.jsonserialize.CarSerializer import com.banjjoknim.playground.model.Car +import com.banjjoknim.playground.model.Owner import com.fasterxml.jackson.databind.ObjectMapper import com.fasterxml.jackson.databind.module.SimpleModule import com.fasterxml.jackson.module.kotlin.registerKotlinModule @@ -27,7 +28,8 @@ class CarSerializerTest { private lateinit var mapper: ObjectMapper 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 @@ -43,14 +45,14 @@ class CarSerializerTest { val result = mapper.writeValueAsString(car) // then - assertThat(result).isEqualTo("""{"name":"banjjoknim","price":10000000}""") + assertThat(result).isEqualTo("""{"name":"banjjoknim","price":10000000,"owner":{"name":"ban","age":30}}""") } @DisplayName("등록된 커스텀 직렬화기의 동작을 테스트한다") @Nested inner class CarSerializerTestCases { @Test - fun `모든 필드를 직렬화한다`() { + fun `자동차의 모든 필드만 직렬화한다`() { // given val module = SimpleModule() module.addSerializer(Car::class.java, CarSerializer()) @@ -64,7 +66,7 @@ class CarSerializerTest { } @Test - fun `이름만 직렬화한다`() { + fun `자동차의 이름만 직렬화한다`() { // given val module = SimpleModule() module.addSerializer(Car::class.java, CarNameSerializer()) @@ -78,7 +80,7 @@ class CarSerializerTest { } @Test - fun `가격만 직렬화한다`() { + fun `자동차의 가격만 직렬화한다`() { // given val module = SimpleModule() module.addSerializer(Car::class.java, CarPriceSerializer())