Skip to content

Commit e962486

Browse files
committed
update class
1 parent 64cf99b commit e962486

File tree

1 file changed

+14
-39
lines changed

1 file changed

+14
-39
lines changed

core-kotlin-modules/core-kotlin-10/src/test/kotlin/com/baeldung/cloningobject/CloningObjectUnitTest.kt

Lines changed: 14 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -3,39 +3,6 @@ package com.baeldung.cloningobject
33
import org.assertj.core.api.Assertions.assertThat
44
import org.junit.jupiter.api.Test
55

6-
/***
7-
Class Scheme
8-
============================
9-
10-
Address
11-
├── street: String
12-
└── city: String
13-
14-
Person
15-
├── name: String
16-
└── address: Address
17-
18-
Organization
19-
├── name: String
20-
├── headquarters: Address
21-
└── companies: List<Company>
22-
└── Company
23-
├── name: String
24-
├── industry: String
25-
├── ceo: Person
26-
│ ├── name: String
27-
│ └── address: Address
28-
└── employees: List<Person>
29-
└── Person
30-
├── name: String
31-
└── address: Address
32-
33-
data class Address(var street: String, var city: String)
34-
data class Person(var name: String, var address: Address)
35-
data class Company(var name: String, var industry: String, val ceo: Person, val employees: List<Person>)
36-
data class Organization(var name: String, val headquarters: Address, val companies: List<Company>)
37-
*/
38-
396
data class Address(var street: String, var city: String) : Cloneable {
407

418
public override fun clone(): Address = super.clone() as Address
@@ -88,14 +55,22 @@ class CloningObjectUnitTest {
8855

8956
@Test
9057
fun `when cloned object then proves that deep copy`(){
91-
val address = Address("Jln. Kemasan No 53", "Yogyakarta")
9258

93-
val ceo = Person("Hangga Aji Sayekti", address)
94-
val john = Person("John Doe", address)
95-
val layla = Person("Layla Hinchcliffe", address)
59+
val personHangga = Person("Hangga Aji Sayekti", Address("Jln. Kemasan No 53", "Yogyakarta"))
60+
val personRaihan = Person("Raihan Kusumo", Address("Jln. Cikapayang No. 508", "Medan"))
61+
val personLayla = Person("Layla Hinchcliffe", Address("Collins Street", "Melbourne"))
62+
63+
val companyBasen = Company("Basen Software", "Tech", personHangga, listOf(personRaihan, personLayla))
64+
65+
val personBima = Person("Bima Arya", Address("Jl. Colombo No. 7", "Yogyakarta"))
66+
val personDina = Person("Dina Fitriani", Address("Jl. Kaliurang No. 12", "Yogyakarta"))
67+
val personCindy = Person("Cindy Claudia", Address("Jl. Atmosukarto No. 1", "Yogyakarta"))
68+
69+
val companyKotagede = Company("Kotagede Software", "Tech", personBima, listOf(personCindy, personDina))
70+
71+
val organization = Organization("Bekraf", Address("Jalan Medan Merdeka Selatan", "Jakarta"), listOf(companyBasen, companyKotagede))
72+
9673

97-
val company = Company("Basen Software", "Tech", ceo, listOf(john, layla))
98-
val organization = Organization("Bekraf", address, listOf(company))
9974
val copiedOrganization = organization.copy(
10075
headquarters = organization.headquarters.copy(),
10176
companies = organization.companies.map { company ->

0 commit comments

Comments
 (0)