diff --git a/src/main/kotlin/ley/anvil/modpacktools/util/CLIUtil.kt b/src/main/kotlin/ley/anvil/modpacktools/util/CLIUtil.kt index 5dca07d..7c333e1 100644 --- a/src/main/kotlin/ley/anvil/modpacktools/util/CLIUtil.kt +++ b/src/main/kotlin/ley/anvil/modpacktools/util/CLIUtil.kt @@ -19,9 +19,8 @@ fun fPrint(x: Any?, vararg formatters: (String) -> String) = System.out.fPrint(x * @param x the object to print * @param formatters the formatters to apply to x, they will be ran in the order they are supplied in */ -fun PrintStream.fPrint(x: Any?, vararg formatters: (String) -> String) = this.print( - formatters.fold(x.toString()) {acc, f -> f(acc)} -) +fun PrintStream.fPrint(x: Any?, vararg formatters: (String) -> String) = + this.print(formatters.fold(x.toString()) {acc, f -> f(acc)}) /** * applies all given formatters to the string representation of the object and then prints it with a newline at the end diff --git a/src/test/kotlin/ley/anvil/modpacktools/util/CLIUtilTest.kt b/src/test/kotlin/ley/anvil/modpacktools/util/CLIUtilTest.kt index f723f66..61b35c1 100644 --- a/src/test/kotlin/ley/anvil/modpacktools/util/CLIUtilTest.kt +++ b/src/test/kotlin/ley/anvil/modpacktools/util/CLIUtilTest.kt @@ -6,13 +6,24 @@ import java.io.ByteArrayOutputStream import java.io.PrintStream class CLIUtilTest { + fun prntStr(f: PrintStream.() -> Unit): String = + ByteArrayOutputStream().apply { + PrintStream(this, true, "UTF-8").use(f) + }.use {it.toString("UTF-8")} + @Test fun testFPrintln() { - val baos = ByteArrayOutputStream() - PrintStream(baos, true, "UTF-8").use { - it.fPrintln("Test String", {s -> "$s Formatted"}) - } + assertEquals( + "Test String Formatted\n", + prntStr {this.fPrintln("Test String", {"$it Formatted"})} + ) + } - assertEquals("Test String Formatted\n", baos.toString("UTF-8")) + @Test + fun testFPrintlnNull() { + assertEquals( + "null\n", + prntStr {this.fPrintln(null)} + ) } }