refactor naming of test method

This commit is contained in:
Cesare
2022-10-17 18:41:04 +02:00
parent 2cae083578
commit 6133c31057
3 changed files with 32 additions and 35 deletions

View File

@@ -2,13 +2,16 @@ package com.baeldung.java_shallow_deep_copy.data;
public class BankAccountDeep extends BankAccount { public class BankAccountDeep extends BankAccount {
public BankAccountDeep(String name, String surname, Balance balance) { public BankAccountDeep(String name, String surname, Balance balance) {
super(name, surname, balance); super(name, surname, balance);
} }
@Override @Override
public Object clone() throws CloneNotSupportedException { public Object clone() throws CloneNotSupportedException {
return new BankAccountDeep(name, surname, (Balance) balance.clone()); BankAccountDeep bankAccountDeep = (BankAccountDeep) super.clone();
bankAccountDeep.setBalance((Balance) balance.clone());
return bankAccountDeep;
} }
public BankAccountDeep(BankAccountDeep bankAccountDeep) { public BankAccountDeep(BankAccountDeep bankAccountDeep) {

View File

@@ -1,41 +1,38 @@
package com.baeldung.java_shallow_deep_copy.unit; package com.baeldung.java_shallow_deep_copy.unit;
import com.baeldung.java_shallow_deep_copy.data.*;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertNotEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals;
import org.junit.jupiter.api.Test;
import com.baeldung.java_shallow_deep_copy.data.Balance;
import com.baeldung.java_shallow_deep_copy.data.BankAccountDeep;
public class DeepCopyTest { public class DeepCopyTest {
private static final String NAME = "Hello";
private static final String SURNAME = "World";
@Test @Test
void whenIsADeepCopyDoneByCopyConstructor_thenNestedObjectShouldNotHaveSameReference() { void whenIsADeepCopyDoneByCopyConstructor_thenNestedObjectsAreNotTheSame() {
Balance balance = new Balance(10000, "EUR"); Balance balance = new Balance(10000, "EUR");
BankAccountDeep bankAccount = new BankAccountDeep(NAME, SURNAME, balance); BankAccountDeep bankAccount = new BankAccountDeep("Hello", "World", balance);
BankAccountDeep deepCopy = new BankAccountDeep(bankAccount); BankAccountDeep deepCopy = new BankAccountDeep(bankAccount);
assertNotEquals(bankAccount.getBalance(), deepCopy.getBalance()); assertNotEquals(bankAccount.getBalance(), deepCopy.getBalance());
} }
@Test @Test
void whenIsADeepCopyDoneByCopyConstructor_thenCopyValueShouldNotChange() { void whenIsADeepCopyDoneByCopyConstructor_thenCopyShouldNotChange() {
Balance balance = new Balance(10000, "EUR"); Balance balance = new Balance(10000, "EUR");
BankAccountDeep bankAccount = new BankAccountDeep(NAME, SURNAME, balance); BankAccountDeep bankAccount = new BankAccountDeep("Hello", "World", balance);
BankAccountDeep deepCopy = new BankAccountDeep(bankAccount); BankAccountDeep deepCopy = new BankAccountDeep(bankAccount);
balance.setAmount(0); bankAccount.getBalance().setAmount(0);
assertNotEquals(bankAccount.getBalance() float deepCopyAmount = deepCopy.getBalance().getAmount();
.getAmount(), deepCopy.getBalance() assertNotEquals(0, deepCopyAmount);
.getAmount());
} }
@Test @Test
void whenIsADeepCopyDoneByCloneMethod_thenNestedObjectShouldNotHaveSameReference() throws CloneNotSupportedException { void whenIsADeepCopyDoneByCloneMethod_thenNestedObjectsAreNotTheSame() throws CloneNotSupportedException {
String name = "Hello";
String surname = "World";
Balance balance = new Balance(10000, "EUR"); Balance balance = new Balance(10000, "EUR");
BankAccountDeep bankAccount = new BankAccountDeep(NAME, SURNAME, balance); BankAccountDeep bankAccount = new BankAccountDeep("Hello", "World", balance);
BankAccountDeep deepCopy = (BankAccountDeep) bankAccount.clone(); BankAccountDeep deepCopy = (BankAccountDeep) bankAccount.clone();
assertNotEquals(bankAccount.getBalance(), deepCopy.getBalance()); assertNotEquals(bankAccount.getBalance(), deepCopy.getBalance());
} }
@@ -44,10 +41,11 @@ public class DeepCopyTest {
void whenIsADeepCopyDoneByCloneMethod_thenCopyValueShouldNotChange() throws CloneNotSupportedException { void whenIsADeepCopyDoneByCloneMethod_thenCopyValueShouldNotChange() throws CloneNotSupportedException {
Balance balance = new Balance(10000, "EUR"); Balance balance = new Balance(10000, "EUR");
BankAccountDeep bankAccount = new BankAccountDeep(NAME, SURNAME, balance); BankAccountDeep bankAccount = new BankAccountDeep("Hello", "World", balance);
BankAccountDeep deepCopy = (BankAccountDeep) bankAccount.clone(); BankAccountDeep deepCopy = (BankAccountDeep) bankAccount.clone();
balance.setAmount(0); bankAccount.getBalance().setAmount(0);
assertNotEquals(balance.getAmount(), deepCopy.getBalance() float deepCopyAmount = deepCopy.getBalance().getAmount();
.getAmount()); assertNotEquals(0, deepCopyAmount);
} }
} }

View File

@@ -28,16 +28,13 @@ public class ShallowCopyTest {
} }
@Test @Test
void whenIsAShallowCopyDoneByCopyConstructor_thenCopyValueShouldChange() throws CloneNotSupportedException { void whenIsAShallowCopyDoneByCopyConstructor_thenCopyShouldChange() throws CloneNotSupportedException {
Balance balance = new Balance(10000, "EUR"); Balance balance = new Balance(10000, "EUR");
BankAccountShallow bankAccount = new BankAccountShallow("Hello", "World", balance); BankAccountShallow bankAccount = new BankAccountShallow("Hello", "World", balance);
BankAccountShallow shallowCopy = new BankAccountShallow(bankAccount); BankAccountShallow shallowCopy = new BankAccountShallow(bankAccount);
float newBalance = 0; bankAccount.getBalance().setAmount(0);
balance.setAmount(newBalance); float shallowCopyAmount = shallowCopy.getBalance().getAmount();
assertEquals(newBalance, bankAccount.getBalance() assertEquals(0, shallowCopyAmount);
.getAmount());
assertEquals(newBalance, shallowCopy.getBalance()
.getAmount());
} }
@Test @Test
@@ -49,14 +46,13 @@ public class ShallowCopyTest {
} }
@Test @Test
void whenIsAShallowCopyDoneByCloneMethod__thenCopyValueShouldChange() throws CloneNotSupportedException { void whenIsAShallowCopyDoneByCloneMethod__thenCopyShouldChange() throws CloneNotSupportedException {
Balance balance = new Balance(10000, "EUR"); Balance balance = new Balance(10000, "EUR");
BankAccountShallow bankAccount = new BankAccountShallow("Hello", "World", balance); BankAccountShallow bankAccount = new BankAccountShallow("Hello", "World", balance);
BankAccountShallow shallowCopy = (BankAccountShallow) bankAccount.clone(); BankAccountShallow shallowCopy = (BankAccountShallow) bankAccount.clone();
float newBalance = 0; bankAccount.getBalance().setAmount(0);
balance.setAmount(newBalance); float shallowCopyAmount = shallowCopy.getBalance().getAmount();
assertEquals(newBalance, shallowCopy.getBalance() assertEquals(0, shallowCopyAmount);
.getAmount());
} }
} }