From c0165457b04a3df579af8dec678449c8e186fe99 Mon Sep 17 00:00:00 2001 From: "Kai.Yuan" Date: Tue, 16 Apr 2024 23:54:01 +0200 Subject: [PATCH 1/2] [cast-2-str-vs-str-valueOf] casting vs string.valueOf() --- ...astingToStringVsStringValueOfUnitTest.java | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 core-java-modules/core-java-string-conversions-3/src/test/java/com/baeldung/castingandstringvalueof/CastingToStringVsStringValueOfUnitTest.java diff --git a/core-java-modules/core-java-string-conversions-3/src/test/java/com/baeldung/castingandstringvalueof/CastingToStringVsStringValueOfUnitTest.java b/core-java-modules/core-java-string-conversions-3/src/test/java/com/baeldung/castingandstringvalueof/CastingToStringVsStringValueOfUnitTest.java new file mode 100644 index 0000000000..d50bf0fdb8 --- /dev/null +++ b/core-java-modules/core-java-string-conversions-3/src/test/java/com/baeldung/castingandstringvalueof/CastingToStringVsStringValueOfUnitTest.java @@ -0,0 +1,50 @@ +package com.baeldung.castingandstringvalueof; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.assertThrows; + +import java.util.List; + +import org.junit.jupiter.api.Test; + +public class CastingToStringVsStringValueOfUnitTest { + + @Test + void whenCastingStringAndCallingValueOf_thenCorrect() { + Object obj = "Baedlung is awesome!"; + + String castResult = (String) obj; + assertEquals("Baedlung is awesome!", castResult); + + String valueOfResult = String.valueOf(obj); + assertEquals("Baedlung is awesome!", valueOfResult); + } + + @Test + void whenCastingNonStringAndCallingValueOf_thenGetExpectedResult() { + Object obj = 42; + assertThrows(ClassCastException.class, () -> {String castResult = (String) obj;}); + + String valueOfResult = String.valueOf(obj); + assertEquals("42", valueOfResult); + + Object obj2 = List.of("Baeldung", "is", "awesome"); + assertThrows(ClassCastException.class, () -> {String castResult = (String) obj2;}); + + valueOfResult = String.valueOf(obj2); + assertEquals("[Baeldung, is, awesome]", valueOfResult); + } + + @Test + void whenObjectIsNullCastingAndCallingValueOf_thenGetExpectedResult() { + Object obj = null; + String castResult = (String) obj; + assertNull(castResult); + + String valueOfResult = String.valueOf(obj); + assertNotNull(valueOfResult); + assertEquals("null", valueOfResult); + } +} \ No newline at end of file From bca0e467c93fe357a80c364e91d5d9e0e8b3f135 Mon Sep 17 00:00:00 2001 From: "Kai.Yuan" Date: Sun, 21 Apr 2024 17:33:56 +0200 Subject: [PATCH 2/2] [cast-2-str-vs-str-valueOf] fix typo --- .../CastingToStringVsStringValueOfUnitTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/core-java-modules/core-java-string-conversions-3/src/test/java/com/baeldung/castingandstringvalueof/CastingToStringVsStringValueOfUnitTest.java b/core-java-modules/core-java-string-conversions-3/src/test/java/com/baeldung/castingandstringvalueof/CastingToStringVsStringValueOfUnitTest.java index d50bf0fdb8..7c8def76e9 100644 --- a/core-java-modules/core-java-string-conversions-3/src/test/java/com/baeldung/castingandstringvalueof/CastingToStringVsStringValueOfUnitTest.java +++ b/core-java-modules/core-java-string-conversions-3/src/test/java/com/baeldung/castingandstringvalueof/CastingToStringVsStringValueOfUnitTest.java @@ -13,13 +13,13 @@ public class CastingToStringVsStringValueOfUnitTest { @Test void whenCastingStringAndCallingValueOf_thenCorrect() { - Object obj = "Baedlung is awesome!"; + Object obj = "Baeldung is awesome!"; String castResult = (String) obj; - assertEquals("Baedlung is awesome!", castResult); + assertEquals("Baeldung is awesome!", castResult); String valueOfResult = String.valueOf(obj); - assertEquals("Baedlung is awesome!", valueOfResult); + assertEquals("Baeldung is awesome!", valueOfResult); } @Test