diff --git a/core-java-modules/core-java-io-conversions-2/src/test/java/com/baeldung/arraystostring/JavaArraysToStringUnitTest.java b/core-java-modules/core-java-io-conversions-2/src/test/java/com/baeldung/arraystostring/JavaArraysToStringUnitTest.java new file mode 100644 index 0000000000..2c81b1358b --- /dev/null +++ b/core-java-modules/core-java-io-conversions-2/src/test/java/com/baeldung/arraystostring/JavaArraysToStringUnitTest.java @@ -0,0 +1,36 @@ +package com.baeldung.arraystostring; + +import org.junit.Test; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class JavaArraysToStringUnitTest { + + @Test public void givenInstanceOfArray_whenTryingToConvertToString_thenNameOfClassIsShown() { + Object[] arrayOfObjects = { "John", 2, true }; + assertTrue(arrayOfObjects.toString().startsWith("[Ljava.lang.Object;")); + } + + @Test public void givenInstanceOfArray_useArraysToStringToConvert_thenValueOfObjectsAreShown() { + Object[] arrayOfObjects = { "John", 2, true }; + assertEquals(Arrays.toString(arrayOfObjects), "[John, 2, true]"); + } + + @Test public void givenInstanceOfDeepArray_userArraysDeepToStringToConvert_thenValueOfInnerObjectsAreShown() { + Object[] innerArray = { "We", "Are", "Inside" }; + Object[] arrayOfObjects = { "John", 2, innerArray }; + assertEquals(Arrays.deepToString(arrayOfObjects), "[John, 2, [We, Are, Inside]]"); + } + + @Test public void givenInstanceOfDeepArray_useStreamsToConvert_thenValueOfObjectsAreShown() { + Object[] arrayOfObjects = { "John", 2, true }; + List listOfString = Stream.of(arrayOfObjects).map(Object::toString).collect(Collectors.toList()); + assertEquals(listOfString.toString(), "[John, 2, true]"); + } +}