package org.sef4j.callstack.stattree.printers; import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.io.StringWriter; import org.apache.commons.io.IOUtils; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.sef4j.callstack.stattree.CallTreeNodeTstBuilder; import org.sef4j.callstack.stattree.printers.TextCallTreePrinter; import org.sef4j.core.helpers.proptree.model.PropTreeNode; public class TextCallTreePrinterTest { protected StringWriter buffer; protected PrintWriter out; protected TextCallTreePrinter sut; @Before public void setup() { buffer = new StringWriter(); out = new PrintWriter(buffer); TextCallTreePrinter.Builder builder = new TextCallTreePrinter.Builder(); builder.withPropPerTypePrinter(CallTreeNodeTstBuilder.defaultPerTypePrinters(true, ":{", "}")); // upcast to abstract builder!.. cannot chain method this.sut = builder.build(out); } @Test public void testRecursivePrintNodes() throws IOException { // Prepare PropTreeNode root = CallTreeNodeTstBuilder.buildTree(null, null); // Perform sut.recursivePrintNodes(root, -1); // Post-check out.flush(); String res = buffer.toString(); // System.out.println(res); InputStream expectedStream = getClass().getResourceAsStream("TextCallTreePrintTest-testRecursivePrintNodes.txt"); String expectedRes = IOUtils.toString(expectedStream); Assert.assertEquals(expectedRes, res); } }