aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/scala/org/perl8/test/tap/TestBuilder.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/org/perl8/test/tap/TestBuilder.scala')
-rw-r--r--src/main/scala/org/perl8/test/tap/TestBuilder.scala75
1 files changed, 47 insertions, 28 deletions
diff --git a/src/main/scala/org/perl8/test/tap/TestBuilder.scala b/src/main/scala/org/perl8/test/tap/TestBuilder.scala
index 432f902..99465fd 100644
--- a/src/main/scala/org/perl8/test/tap/TestBuilder.scala
+++ b/src/main/scala/org/perl8/test/tap/TestBuilder.scala
@@ -18,55 +18,74 @@ class TestBuilder private (
def cloneForSubtest (newPlan: Plan): TestBuilder =
new TestBuilder(newPlan, indent + " ", terminalInUse)
- def ok (
- test: Boolean,
- description: Message = NoMessage,
- todo: Message = NoMessage
- ) {
- val line = Producer.result(test, state.currentTest, description, todo)
- state.ok(test || todo.isDefined)
- outLine(line)
+ def ok (test: Boolean) {
+ state.ok(test)
+ outLine(Producer.result(test, state.currentTest))
}
- def skip (reason: Message = NoMessage) {
- val line = Producer.skip(state.currentTest, reason)
+ def ok (test: Boolean, description: String) {
+ state.ok(test)
+ outLine(Producer.result(test, state.currentTest, description))
+ }
+
+ def okTodo (test: Boolean, todo: String) {
state.ok(true)
- outLine(line)
+ outLine(Producer.todoResult(test, state.currentTest, todo))
}
- def diag (message: Message) {
- message.foreach { m =>
- errLine(Producer.comment(m))
- }
+ def okTodo (test: Boolean, description: String, todo: String) {
+ state.ok(true)
+ outLine(Producer.todoResult(test, state.currentTest, description, todo))
+ }
+
+ def skip {
+ state.ok(true)
+ outLine(Producer.skip(state.currentTest))
+ }
+
+ def skip (reason: String) {
+ state.ok(true)
+ outLine(Producer.skip(state.currentTest, reason))
+ }
+
+ def diag (message: String) {
+ errLine(Producer.comment(message))
+ }
+
+ def note (message: String) {
+ outLine(Producer.comment(message))
}
- def note (message: Message) {
- message.foreach(m => outLine(Producer.comment(m)))
+ def bailOut {
+ val bailOutMessage = Producer.bailOut
+ outLine(bailOutMessage)
+ throw new BailOutException(bailOutMessage)
}
- def bailOut (message: Message = NoMessage) {
- outLine(Producer.bailOut(message))
- throw new BailOutException(message.getOrElse(""))
+ def bailOut (message: String) {
+ val bailOutMessage = Producer.bailOut(message)
+ outLine(bailOutMessage)
+ throw new BailOutException(bailOutMessage)
}
def doneTesting: Boolean = {
plan match {
- case NoPlan => outLine(Producer.plan(state.currentTest - 1))
+ case NoPlan => outLine(Producer.plan(state.currentTest))
case _ => ()
}
if (!state.isPassing) {
if (!state.matchesPlan) {
val planCount = (plan match {
- case NoPlan => state.currentTest - 1
+ case NoPlan => state.currentTest
case p => p.plan
})
val planned = planCount + " test" + (if (planCount > 1) "s" else "")
- val ran = state.currentTest - 1
+ val ran = state.currentTest
diag("Looks like you planned " + planned + " but ran " + ran + ".")
}
- if (state.currentTest == 1) {
+ if (state.currentTest == 0) {
diag("No tests run!")
}
@@ -74,7 +93,7 @@ class TestBuilder private (
val count = state.failCount
val fails = count + " test" + (if (count > 1) "s" else "")
val total =
- state.currentTest - 1 + (if (state.matchesPlan) "" else " run")
+ state.currentTest + (if (state.matchesPlan) "" else " run")
diag("Looks like you failed " + fails + " of " + total + ".")
}
}
@@ -126,14 +145,14 @@ class TestBuilder private (
}
def currentTest: Int =
- failCount + passCount + 1
+ failCount + passCount
def matchesPlan: Boolean = plan match {
- case NumericPlan(p) => p.plan == failCount + passCount
+ case NumericPlan(p) => p.plan == currentTest
case _ => true
}
def isPassing: Boolean =
- currentTest > 1 && failCount == 0 && matchesPlan
+ currentTest > 0 && failCount == 0 && matchesPlan
}
}