From a63f93f69ace733dc52894ddf3812a15826b8c8a Mon Sep 17 00:00:00 2001 From: Yavuz Tas Date: Wed, 20 Nov 2019 16:01:30 +0100 Subject: [PATCH] update unit tests --- .../binarytree/BinaryTreePrinter.java | 5 +- ...a => PrintingBinaryTreeModelUnitTest.java} | 78 ++++++++++++++++--- 2 files changed, 71 insertions(+), 12 deletions(-) rename core-java-modules/core-java/src/test/java/com/baeldung/binarytree/{PrintingBinaryTreeUnitTest.java => PrintingBinaryTreeModelUnitTest.java} (52%) diff --git a/core-java-modules/core-java/src/main/java/com/baeldung/binarytree/BinaryTreePrinter.java b/core-java-modules/core-java/src/main/java/com/baeldung/binarytree/BinaryTreePrinter.java index d425bd7003..861e42fba1 100644 --- a/core-java-modules/core-java/src/main/java/com/baeldung/binarytree/BinaryTreePrinter.java +++ b/core-java-modules/core-java/src/main/java/com/baeldung/binarytree/BinaryTreePrinter.java @@ -16,7 +16,6 @@ public class BinaryTreePrinter { StringBuilder sb = new StringBuilder(); sb.append(root.getValue()); - sb.append("\n"); String pointerRight = "└──"; String pointerLeft = (root.getRight() != null) ? "├──" : "└──"; @@ -32,10 +31,10 @@ public class BinaryTreePrinter { if (node != null) { + sb.append("\n"); sb.append(padding); sb.append(pointer); sb.append(node.getValue()); - sb.append("\n"); StringBuilder paddingBuilder = new StringBuilder(padding); if (hasRightSibling) { @@ -56,7 +55,7 @@ public class BinaryTreePrinter { } public void print() { - System.out.println(traversePreOrder(tree)); + System.out.print(traversePreOrder(tree)); } } \ No newline at end of file diff --git a/core-java-modules/core-java/src/test/java/com/baeldung/binarytree/PrintingBinaryTreeUnitTest.java b/core-java-modules/core-java/src/test/java/com/baeldung/binarytree/PrintingBinaryTreeModelUnitTest.java similarity index 52% rename from core-java-modules/core-java/src/test/java/com/baeldung/binarytree/PrintingBinaryTreeUnitTest.java rename to core-java-modules/core-java/src/test/java/com/baeldung/binarytree/PrintingBinaryTreeModelUnitTest.java index c9828c2867..3cfcdca833 100644 --- a/core-java-modules/core-java/src/test/java/com/baeldung/binarytree/PrintingBinaryTreeUnitTest.java +++ b/core-java-modules/core-java/src/test/java/com/baeldung/binarytree/PrintingBinaryTreeModelUnitTest.java @@ -1,19 +1,36 @@ package com.baeldung.binarytree; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.io.ByteArrayOutputStream; +import java.io.OutputStream; +import java.io.PrintStream; + +import org.junit.After; import org.junit.Before; import org.junit.Test; -public class PrintingBinaryTreeUnitTest { +public class PrintingBinaryTreeModelUnitTest { private BinaryTreeModel balanced; - private BinaryTreeModel leftUnbalanced; - private BinaryTreeModel rightUnbalanced; + private BinaryTreeModel leftSkewed; + private BinaryTreeModel rightSkewed; + + private OutputStream output; @Before public void setup() { balanced = createBalancedTree(); - leftUnbalanced = createLeftUnbalancedTree(); - rightUnbalanced = createRightUnbalancedTree(); + leftSkewed = createLeftUnbalancedTree(); + rightSkewed = createRightUnbalancedTree(); + + output = new ByteArrayOutputStream(); + System.setOut(new PrintStream(output)); + } + + @After + public void tearDown() { + System.setOut(System.out); } private BinaryTreeModel createBalancedTree() { @@ -48,7 +65,7 @@ public class PrintingBinaryTreeUnitTest { private BinaryTreeModel createLeftUnbalancedTree() { - BinaryTreeModel root = new BinaryTreeModel("left"); + BinaryTreeModel root = new BinaryTreeModel("root"); BinaryTreeModel node1 = new BinaryTreeModel("node1"); BinaryTreeModel node2 = new BinaryTreeModel("node2"); @@ -78,7 +95,7 @@ public class PrintingBinaryTreeUnitTest { private BinaryTreeModel createRightUnbalancedTree() { - BinaryTreeModel root = new BinaryTreeModel("right"); + BinaryTreeModel root = new BinaryTreeModel("root"); BinaryTreeModel node1 = new BinaryTreeModel("node1"); BinaryTreeModel node2 = new BinaryTreeModel("node2"); @@ -108,17 +125,60 @@ public class PrintingBinaryTreeUnitTest { @Test public void givenBinaryTreeModelBalanced_whenPrintWithBinaryTreePrinter() { + + StringBuilder expected = new StringBuilder(); + expected.append("root").append("\n"); + expected.append("├──node1").append("\n"); + expected.append("│ ├──node3").append("\n"); + expected.append("│ │ └──node7").append("\n"); + expected.append("│ │ ├──node8").append("\n"); + expected.append("│ │ └──node9").append("\n"); + expected.append("│ └──node4").append("\n"); + expected.append("└──node2").append("\n"); + expected.append(" ├──node5").append("\n"); + expected.append(" └──node6"); + new BinaryTreePrinter(balanced).print(); + + assertEquals(expected.toString(), output.toString()); } @Test public void givenBinaryTreeModelLeftUnbalanced_whenPrintWithBinaryTreePrinter() { - new BinaryTreePrinter(leftUnbalanced).print(); + + StringBuilder expected = new StringBuilder(); + expected.append("root").append("\n"); + expected.append("├──node1").append("\n"); + expected.append("│ └──node3").append("\n"); + expected.append("│ └──node4").append("\n"); + expected.append("│ └──node5").append("\n"); + expected.append("│ └──node6").append("\n"); + expected.append("│ └──node7").append("\n"); + expected.append("│ └──node8").append("\n"); + expected.append("└──node2"); + + new BinaryTreePrinter(leftSkewed).print(); + + assertEquals(expected.toString(), output.toString()); } @Test public void givenBinaryTreeModelRightUnbalanced_whenPrintWithBinaryTreePrinter() { - new BinaryTreePrinter(rightUnbalanced).print(); + + StringBuilder expected = new StringBuilder(); + expected.append("root").append("\n"); + expected.append("├──node1").append("\n"); + expected.append("└──node2").append("\n"); + expected.append(" └──node3").append("\n"); + expected.append(" └──node4").append("\n"); + expected.append(" └──node5").append("\n"); + expected.append(" └──node6").append("\n"); + expected.append(" └──node7").append("\n"); + expected.append(" └──node8"); + + new BinaryTreePrinter(rightSkewed).print(); + + assertEquals(expected.toString(), output.toString()); } }