diff --git a/core-java/src/test/java/com/baeldung/string/CharSequenceVsStringUnitTest.java b/core-java/src/test/java/com/baeldung/string/CharSequenceVsStringUnitTest.java new file mode 100644 index 0000000000..1378b5d876 --- /dev/null +++ b/core-java/src/test/java/com/baeldung/string/CharSequenceVsStringUnitTest.java @@ -0,0 +1,47 @@ +package com.baeldung.string; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertTrue; + +public class CharSequenceVsStringUnitTest { + + @Test + public void givenUsingString_whenInstantiatingString_thenWrong() { + CharSequence firstString = "bealdung"; + String secondString = "baeldung"; + + assertNotEquals(firstString, secondString); + } + + @Test + public void givenIdenticalCharSequences_whenCastToString_thenEqual() { + CharSequence charSequence1 = "baeldung_1"; + CharSequence charSequence2 = "baeldung_2"; + + assertTrue(charSequence1.toString().compareTo(charSequence2.toString()) > 0); + } + + @Test + public void givenString_whenAppended_thenUnmodified() { + String test = "a"; + int firstAddressOfTest = System.identityHashCode(test); + test += "b"; + int secondAddressOfTest = System.identityHashCode(test); + + assertEquals(firstAddressOfTest, secondAddressOfTest); + } + + @Test + public void givenStringBuilder_whenAppended_thenModified() { + StringBuilder test = new StringBuilder(); + test.append("a"); + int firstAddressOfTest = System.identityHashCode(test); + test.append("b"); + int secondAddressOfTest = System.identityHashCode(test); + + assertEquals(firstAddressOfTest, secondAddressOfTest); + } +}