Skip to content

Commit

Permalink
scalafmt fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
dkarlinsky committed Aug 4, 2019
1 parent 9a4419c commit 527e148
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 68 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,13 @@
* limitations under the License.
*/


package zio.test.runner

import zio.console._
import zio.test._
import zio.test.mock.{MockConsole, MockEnvironment, mockEnvironmentManaged}
import zio.test.mock.{ mockEnvironmentManaged, MockConsole, MockEnvironment }
import zio.test.runner.ExecutedSpecStructure.Stats
import zio.{BaseCrossPlatformSpec, RIO, ZIO}
import zio.{ BaseCrossPlatformSpec, RIO, ZIO }

class ExecutedSpecStructureSpec extends BaseCrossPlatformSpec {
def is = "ExecutedSpecStructure".title ^ s2"""
Expand All @@ -32,8 +31,8 @@ class ExecutedSpecStructureSpec extends BaseCrossPlatformSpec {
val output = unsafeRun(withEnvironment {
for {
results <- ExecutedSpecStructureSpec.SimpleFailingSpec.run
_ <- ExecutedSpecStructure.from(results).traverse(handleSuite, handleTest)
output <- MockConsole.output
_ <- ExecutedSpecStructure.from(results).traverse(handleSuite, handleTest)
output <- MockConsole.output
} yield output
})

Expand All @@ -47,29 +46,27 @@ class ExecutedSpecStructureSpec extends BaseCrossPlatformSpec {
def withEnvironment[E, A](zio: ZIO[MockEnvironment, E, A]): ZIO[Any, E, A] =
mockEnvironmentManaged.use[Any, E, A](r => zio.provide(r))


def handleSuite(label: String, stats: Stats): RIO[MockEnvironment, Unit] = {
def handleSuite(label: String, stats: Stats): RIO[MockEnvironment, Unit] =
for {
_ <- putStr(s"SUITE: $label: $stats")
} yield ()
}

def handleTest(label: String, testResult: ZTestResult): RIO[MockEnvironment, Unit] = {
def handleTest(label: String, testResult: ZTestResult): RIO[MockEnvironment, Unit] =
for {
_ <- putStr(s"TEST: $label: ${testResult.rendered}")
} yield ()
}
}

object ExecutedSpecStructureSpec {
private object SimpleFailingSpec extends DefaultRunnableSpec(
suite("some suite") (
test("failing test") {
assert(1, Predicate.equals(2))
},
test("passing test") {
assert(1, Predicate.equals(1))
}
private object SimpleFailingSpec
extends DefaultRunnableSpec(
suite("some suite")(
test("failing test") {
assert(1, Predicate.equals(2))
},
test("passing test") {
assert(1, Predicate.equals(1))
}
)
)
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,59 +14,65 @@
* limitations under the License.
*/


package zio.test.runner

import java.util.concurrent.atomic.AtomicReference

import sbt.testing._
import zio.BaseCrossPlatformSpec
import zio.test.{DefaultRunnableSpec, Predicate, TestAspect, assert, suite, test}
import zio.test.{ assert, suite, test, DefaultRunnableSpec, Predicate, TestAspect }
import ZTestFrameworkSpec._

import scala.collection.mutable.ArrayBuffer

class ZTestFrameworkSpec extends BaseCrossPlatformSpec {

override def is = "ZTestFramework".title ^
s2"""
override def is =
"ZTestFramework".title ^
s2"""
return fingerprint for RunnableSpec $fingerprint
getTask.execute() should
Report events for failing spec $reportEvents
Log messages for failing spec $logMessages
"""

def fingerprint = {
def fingerprint =
new ZTestFramework().fingerprints === Array(RunnableSpecFingerprint)
}

def reportEvents = {
val reported = ArrayBuffer[Event]()
loadAndExecute(failingSpecFQN, reported.append(_))

reported should containTheSameElementsAs(Seq(
ZTestEvent(failingSpecFQN, new TestSelector("failing test"), Status.Failure, None, 0),
ZTestEvent(failingSpecFQN, new TestSelector("passing test"), Status.Success, None, 0),
ZTestEvent(failingSpecFQN, new TestSelector("ignored test"), Status.Ignored, None, 0),
))
reported should containTheSameElementsAs(
Seq(
ZTestEvent(failingSpecFQN, new TestSelector("failing test"), Status.Failure, None, 0),
ZTestEvent(failingSpecFQN, new TestSelector("passing test"), Status.Success, None, 0),
ZTestEvent(failingSpecFQN, new TestSelector("ignored test"), Status.Ignored, None, 0)
)
)
}

def logMessages = {
val loggers = Seq.fill(3)(new MockLogger)

loadAndExecute(failingSpecFQN, loggers = loggers)

loggers.map(_.messages) should forall(containTheSameElementsAs(Seq(
"info: TEST: failing test: FAILURE: 1 did not satisfy equals(2)",
"info: TEST: passing test: SUCCESS",
"info: TEST: ignored test: IGNORED",
"info: SUITE: some suite, passed: 1, failed: 1, ignored: 1"
)))
loggers.map(_.messages) should forall(
containTheSameElementsAs(
Seq(
"info: TEST: failing test: FAILURE: 1 did not satisfy equals(2)",
"info: TEST: passing test: SUCCESS",
"info: TEST: ignored test: IGNORED",
"info: SUITE: some suite, passed: 1, failed: 1, ignored: 1"
)
)
)
}

private def loadAndExecute(fqn: String, eventHandler: EventHandler = _ => (), loggers: Seq[Logger] = Nil) = {
val taskDef = new TaskDef(fqn, RunnableSpecFingerprint, false, Array())
val task = new ZTestFramework().runner(Array(), Array(), getClass.getClassLoader)
val task = new ZTestFramework()
.runner(Array(), Array(), getClass.getClassLoader)
.tasks(Array(taskDef))
.head

Expand All @@ -76,19 +82,20 @@ class ZTestFrameworkSpec extends BaseCrossPlatformSpec {

object ZTestFrameworkSpec {
val failingSpecFQN = SimpleFailingSpec.getClass.getName
object SimpleFailingSpec extends DefaultRunnableSpec(
suite("some suite") (
test("failing test") {
assert(1, Predicate.equals(2))
},
test("passing test") {
assert(1, Predicate.equals(1))
},
test("ignored test") {
assert(1, Predicate.equals(2))
} @@ TestAspect.ignore
)
)
object SimpleFailingSpec
extends DefaultRunnableSpec(
suite("some suite")(
test("failing test") {
assert(1, Predicate.equals(2))
},
test("passing test") {
assert(1, Predicate.equals(1))
},
test("ignored test") {
assert(1, Predicate.equals(2))
} @@ TestAspect.ignore
)
)

class MockLogger extends Logger {
private val logged = new AtomicReference(Vector.empty[String])
Expand All @@ -99,10 +106,10 @@ object ZTestFrameworkSpec {
def messages: Seq[String] = logged.get()

override def ansiCodesSupported(): Boolean = false
override def error(msg: String): Unit = log(s"error: $msg")
override def warn(msg: String): Unit = log(s"warn: $msg")
override def info(msg: String): Unit = log(s"info: $msg")
override def debug(msg: String): Unit = log(s"debug: $msg")
override def trace(t: Throwable): Unit = log(s"trace: $t")
override def error(msg: String): Unit = log(s"error: $msg")
override def warn(msg: String): Unit = log(s"warn: $msg")
override def info(msg: String): Unit = log(s"info: $msg")
override def debug(msg: String): Unit = log(s"debug: $msg")
override def trace(t: Throwable): Unit = log(s"trace: $t")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ final class ZTestFramework extends Framework {
val fingerprints: Array[Fingerprint] = Array(RunnableSpecFingerprint)

override def runner(args: Array[String], remoteArgs: Array[String], testClassLoader: ClassLoader): ZTestRunner =
ZTestRunner(args, remoteArgs, testClassLoader)
new ZTestRunner(args, remoteArgs, testClassLoader)
}

object RunnableSpecFingerprint extends SubclassFingerprint {
Expand Down
18 changes: 6 additions & 12 deletions test-sbt/shared/src/main/scala/zio/test/runner/ZTestRunner.scala
Original file line number Diff line number Diff line change
Expand Up @@ -25,31 +25,25 @@ import zio.test.runner.ExecutedSpecStructure.Stats

final class ZTestRunner(val args: Array[String], val remoteArgs: Array[String], testClassLoader: ClassLoader)
extends Runner {
def done(): String = "Done"
def tasks(defs: Array[TaskDef]): Array[Task] = {
def done(): String = "Done"
def tasks(defs: Array[TaskDef]): Array[Task] =
defs.map(new ZTestTask(_, testClassLoader))
}
}

object ZTestRunner {
def apply(args: Array[String], remoteArgs: Array[String], testClassLoader: ClassLoader): ZTestRunner =
new ZTestRunner(args, remoteArgs, testClassLoader)
}

class ZTestTask(val taskDef: TaskDef, testClassLoader: ClassLoader) extends Task {

println(s"created ZTestTask for ${taskDef.fullyQualifiedName}")

private val platform: Platform = PlatformLive.makeDefault().withReportFailure(_ => ())

override def tags(): Array[String] = Array.empty

private def loadSpec[R, L]: RunnableSpec[R, L] = {
import org.portablescala.reflect._
val fqn = taskDef.fullyQualifiedName.stripSuffix("$") + "$"
Reflect.lookupLoadableModuleClass(fqn, testClassLoader)
Reflect
.lookupLoadableModuleClass(fqn, testClassLoader)
.getOrElse(throw new ClassNotFoundException("failed to load object: " + fqn))
.loadModule().asInstanceOf[RunnableSpec[R, L]]
.loadModule()
.asInstanceOf[RunnableSpec[R, L]]
}

override def execute(eventHandler: EventHandler, loggers: Array[Logger]): Array[Task] = {
Expand Down

0 comments on commit 527e148

Please sign in to comment.