From 18c68db6e446c48c5aed0010a1d057368273685c Mon Sep 17 00:00:00 2001 From: vlad Date: Tue, 31 Oct 2017 11:09:29 -0700 Subject: PHI-safe logging from PDS UI --- .../driver/core/logging/PhiStringContextTest.scala | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/test/scala/xyz/driver/core/logging/PhiStringContextTest.scala (limited to 'src/test/scala/xyz/driver') diff --git a/src/test/scala/xyz/driver/core/logging/PhiStringContextTest.scala b/src/test/scala/xyz/driver/core/logging/PhiStringContextTest.scala new file mode 100644 index 0000000..4ffe7ae --- /dev/null +++ b/src/test/scala/xyz/driver/core/logging/PhiStringContextTest.scala @@ -0,0 +1,32 @@ +package xyz.driver.core.logging + +import org.scalatest.FreeSpecLike +import xyz.driver.core.logging.phi._ + +class PhiStringContextTest extends FreeSpecLike { + + class Foo(x: Int, y: String) { + val z: Boolean = true + } + + case class Bar(y: Boolean) + + implicit def fooToPhiString(foo: Foo): NoPhiString = new NoPhiString(s"Foo(z=${foo.z})") + + "should not compile if there is no PhiString implicit" in assertDoesNotCompile( + """val bar = Bar(true) + |noPhi"bar is $bar"""".stripMargin + ) + + "should compile if there is a PhiString implicit" in assertCompiles( + """val foo = new Foo(1, "test") + |println(noPhi"foo is $foo}")""".stripMargin + ) + + "should not contain private info" in { + val foo = new Foo(42, "test") + val result = noPhi"foo is $foo".text + assert(!result.contains("test")) + assert(!result.contains("42")) + } +} -- cgit v1.2.3