diff --git a/core-java-modules/core-java-arrays-guides/pom.xml b/core-java-modules/core-java-arrays-guides/pom.xml index d22f6b4d7d..cc67add9e3 100644 --- a/core-java-modules/core-java-arrays-guides/pom.xml +++ b/core-java-modules/core-java-arrays-guides/pom.xml @@ -7,6 +7,10 @@ core-java-arrays-guides jar + + 2.1.5 + + core-java-modules com.baeldung.core-java-modules @@ -24,6 +28,13 @@ jmh-generator-annprocess ${jmh-generator.version} + + uk.org.webcompere + system-stubs-jupiter + ${system-stubs.jupiter.version} + test + + - \ No newline at end of file + diff --git a/core-java-modules/core-java-arrays-guides/src/test/java/com/baeldung/print2darrays/Print2DArraysUnitTest.java b/core-java-modules/core-java-arrays-guides/src/test/java/com/baeldung/print2darrays/Print2DArraysUnitTest.java new file mode 100644 index 0000000000..8694f74d9b --- /dev/null +++ b/core-java-modules/core-java-arrays-guides/src/test/java/com/baeldung/print2darrays/Print2DArraysUnitTest.java @@ -0,0 +1,59 @@ +package com.baeldung.print2darrays; + +import java.util.Arrays; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; + +import uk.org.webcompere.systemstubs.jupiter.SystemStub; +import uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension; +import uk.org.webcompere.systemstubs.stream.SystemOut; + +import static org.assertj.core.api.Assertions.assertThat; + +@ExtendWith(SystemStubsExtension.class) +public class Print2DArraysUnitTest { + + @SystemStub + private SystemOut systemOut; + + @Test + void whenPrint2dArrayUsingNestedLoop_thenLinesAreWrittenToSystemOut() { + int[][] myArray = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; + for (int i = 0; i < myArray.length; i++) { + for (int j = 0; j < myArray[i].length; j++) { + System.out.print(myArray[i][j] + " "); + } + } + String expectedOutput = "1 2 3 4 5 6 7 8 9 "; + assertThat(systemOut.getLines()).containsExactly(expectedOutput); + } + + @Test + public void whenPrint2dArrayUsingStreams_thenLinesAreWrittenToSystemOut() { + int[][] myArray = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; + Arrays.stream(myArray) + .flatMapToInt(Arrays::stream) + .forEach(num -> System.out.print(num + " ")); + String expectedOutput = "1 2 3 4 5 6 7 8 9 "; + assertThat(systemOut.getLines()).containsExactly(expectedOutput); + } + + @Test + public void whenPrint2dArrayUsingDeepToString_thenLinesAreWrittenToSystemOut() { + int[][] myArray = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; + System.out.println(Arrays.deepToString(myArray)); + String expectedOutput = "[[1, 2, 3], [4, 5, 6], [7, 8, 9]]"; + assertThat(systemOut.getLines()).containsExactly(expectedOutput); + } + + @Test + public void whenPrint2dArrayUsingArrayToString_thenLinesAreWrittenToSystemOut() { + int[][] myArray = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } }; + for (int[] row : myArray) { + System.out.print(Arrays.toString(row)); + } + String expectedOutput = "[1, 2, 3][4, 5, 6][7, 8, 9]"; + assertThat(systemOut.getLines()).containsExactly(expectedOutput); + } +}