From 312d400566c75248f26eb076ae50d86d24443ec2 Mon Sep 17 00:00:00 2001 From: hyunwooj Date: Sun, 11 Jun 2023 19:44:21 +0900 Subject: [PATCH] step1: kotlin basics --- src/main/kotlin/.gitkeep | 0 src/main/kotlin/step1/Person.kt | 7 ++++ src/test/kotlin/.gitkeep | 0 src/test/kotlin/step1/PersonTest.kt | 51 +++++++++++++++++++++++++++++ 4 files changed, 58 insertions(+) delete mode 100644 src/main/kotlin/.gitkeep create mode 100644 src/main/kotlin/step1/Person.kt delete mode 100644 src/test/kotlin/.gitkeep create mode 100644 src/test/kotlin/step1/PersonTest.kt diff --git a/src/main/kotlin/.gitkeep b/src/main/kotlin/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/main/kotlin/step1/Person.kt b/src/main/kotlin/step1/Person.kt new file mode 100644 index 0000000000..9a683953d0 --- /dev/null +++ b/src/main/kotlin/step1/Person.kt @@ -0,0 +1,7 @@ +package step1 + +data class Person( + val name: String, + val age: Int? = null, + var nickname: String? = null, +) diff --git a/src/test/kotlin/.gitkeep b/src/test/kotlin/.gitkeep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/test/kotlin/step1/PersonTest.kt b/src/test/kotlin/step1/PersonTest.kt new file mode 100644 index 0000000000..ad2d3e3dd9 --- /dev/null +++ b/src/test/kotlin/step1/PersonTest.kt @@ -0,0 +1,51 @@ +package step1 + +import org.assertj.core.api.Assertions.assertThat +import org.junit.jupiter.api.Test +import org.junit.jupiter.api.assertAll + +class PersonTest { + val name = "김철수" + val age = 20 + val nickname = "아이언워터" + @Test + internal fun `named arguments`() { + val people = listOf( + Person(name, age, nickname), + Person(name, age, nickname = nickname), + Person(name = name, nickname = nickname, age = age), + ) + assertThat(people).allSatisfy { + assertThat(it.name).isEqualTo(name) + assertThat(it.age).isEqualTo(age) + assertThat(it.nickname).isEqualTo(nickname) + } + } + + @Test + internal fun `nullable types`() { + val person = Person(name, null, null) + assertAll( + { assertThat(person.name).isEqualTo(name) }, + { assertThat(person.age).isNull() }, + { assertThat(person.nickname).isNull() }, + ) + } + + @Test + internal fun `default arguments`() { + val person = Person(name) + assertAll( + { assertThat(person.name).isEqualTo(name) }, + { assertThat(person.age).isNull() }, + { assertThat(person.nickname).isNull() }, + ) + } + + @Test + internal fun `data classes`() { + val person1 = Person(name, age, nickname) + val person2 = Person(name, age, nickname) + assertThat(person1).isEqualTo(person2) + } +}