@@ -20,13 +20,15 @@ data class Person(var name: String, var address: Address) : Cloneable {
20
20
class CloningObjectUnitTest {
21
21
22
22
private val address = Address (" Jln. Kemasan" , " Yogyakarta" )
23
- private val person = Person (" Hangga" , address)
23
+ private val person = Person (" Hangga Aji Sayekti " , address)
24
24
25
25
@Test
26
26
fun `when using secondary constructor then proves that shallow copy` () {
27
27
val clonedPerson = Person (person)
28
+
28
29
person.address.city = " Surabaya"
29
30
person.address.street = " Jln. Ahmad Yani"
31
+
30
32
assertThat(clonedPerson).isNotSameAs(person)
31
33
assertThat(clonedPerson.address.city).isEqualTo(" Surabaya" )
32
34
assertThat(clonedPerson.address.street).isEqualTo(" Jln. Ahmad Yani" )
@@ -35,18 +37,22 @@ class CloningObjectUnitTest {
35
37
@Test
36
38
fun `when using copy then proves that shallow copy` () {
37
39
val clonedPerson = person.copy()
38
- person.address.city = " Palembang"
39
- person.address.street = " Jln. Abi Hasan"
40
+
41
+ person.address.city = " Jakarta"
42
+ person.address.street = " Jln. Abdul Muis"
43
+
40
44
assertThat(clonedPerson).isNotSameAs(person)
41
- assertThat(clonedPerson.address.city).isEqualTo(" Palembang " )
42
- assertThat(clonedPerson.address.street).isEqualTo(" Jln. Abi Hasan " )
45
+ assertThat(clonedPerson.address.city).isEqualTo(" Jakarta " )
46
+ assertThat(clonedPerson.address.street).isEqualTo(" Jln. Abdul Muis " )
43
47
}
44
48
45
49
@Test
46
50
fun `when using clone then proves that shallow copy` () {
47
51
val clonedPerson = person.clone()
52
+
48
53
person.address.city = " Palembang"
49
54
person.address.street = " Jln. Abi Hasan"
55
+
50
56
assertThat(clonedPerson).isNotSameAs(person)
51
57
assertThat(clonedPerson.address.city).isEqualTo(" Palembang" )
52
58
assertThat(clonedPerson.address.street).isEqualTo(" Jln. Abi Hasan" )
@@ -55,8 +61,10 @@ class CloningObjectUnitTest {
55
61
@Test
56
62
fun `when own function then proves that deep copy` () {
57
63
val clonedPerson = person.deepCopy()
64
+
58
65
person.address.city = " Bandung"
59
66
person.address.street = " Jln. Siliwangi"
67
+
60
68
assertThat(clonedPerson).isNotSameAs(person)
61
69
assertThat(clonedPerson.address.city).isNotEqualTo(" Bandung" )
62
70
assertThat(clonedPerson.address.street).isNotEqualTo(" Jln. Siliwangi" )
0 commit comments