29 lines
960 B
Java
29 lines
960 B
Java
package com.baeldung.shallowdeepcopy;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
class ShallowDeepCopyUnitTest {
|
|
|
|
@Test
|
|
public void givenAnObjectAndADependency_whenShallowClonedAndDepencyChanges_ThenDepencyHasNewValue() throws Exception {
|
|
Dependency dependency = new Dependency(13);
|
|
Main main = new Main(dependency);
|
|
Main shallowClone = (Main) main.clone();
|
|
dependency.setValue(17);
|
|
assertEquals(17, shallowClone.getDependency()
|
|
.getValue());
|
|
}
|
|
|
|
@Test
|
|
public void givenAnObjectAndADependency_whenDeepClonedAndDepencyChanges_ThenDepencyKeepsOldValue() throws Exception {
|
|
Dependency dependency = new Dependency(13);
|
|
Main main = new Main(dependency);
|
|
Main deepClone = (Main) main.deepClone();
|
|
dependency.setValue(17);
|
|
assertEquals(13, deepClone.getDependency()
|
|
.getValue());
|
|
}
|
|
}
|