aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2013-02-28 00:56:31 -0600
committerJesse Luehrs <doy@tozt.net>2013-02-28 00:56:31 -0600
commit9865dab47611f273afca788e1bd1116007448a1f (patch)
tree7bce2fb1d567e0b1fd9c01d14c32704422c1afa2
parent561155bc9119c6b3836ea595a45d18a902d90ca2 (diff)
downloadscala-test-more-9865dab47611f273afca788e1bd1116007448a1f.tar.gz
scala-test-more-9865dab47611f273afca788e1bd1116007448a1f.zip
stop using Option[Plan]
-rw-r--r--src/main/scala/org/perl8/test/TestMore.scala10
-rw-r--r--src/main/scala/org/perl8/test/package.scala31
-rw-r--r--src/main/scala/org/perl8/test/tap/Consumer.scala2
-rw-r--r--src/main/scala/org/perl8/test/tap/TestBuilder.scala27
-rw-r--r--src/test/scala/org/perl8/test/tap/TestBuilderTest.scala26
5 files changed, 50 insertions, 46 deletions
diff --git a/src/main/scala/org/perl8/test/TestMore.scala b/src/main/scala/org/perl8/test/TestMore.scala
index dc9c0ef..98962b0 100644
--- a/src/main/scala/org/perl8/test/TestMore.scala
+++ b/src/main/scala/org/perl8/test/TestMore.scala
@@ -4,10 +4,7 @@ import scala.util.matching.Regex
import org.perl8.test.tap.TestBuilder
-class TestMore (plan: Option[Plan] = None) extends Test with DelayedInit {
- def this (plan: Plan) =
- this(Some(plan))
-
+class TestMore (plan: Plan = NoPlan) extends Test with DelayedInit {
def delayedInit (body: => Unit) {
testBody = { terminalInUse =>
todo = NoMessage
@@ -113,12 +110,9 @@ class TestMore (plan: Option[Plan] = None) extends Test with DelayedInit {
}
}
- def subtest (name: Message, plan: Plan)(body: => Unit): Boolean =
- subtest(name, Some(plan))(body)
-
def subtest (
name: Message,
- plan: Option[Plan] = None
+ plan: Plan = NoPlan
)(body: => Unit): Boolean = {
val oldBuilder = builder
val success = try {
diff --git a/src/main/scala/org/perl8/test/package.scala b/src/main/scala/org/perl8/test/package.scala
index aa01f0e..2a39eb4 100644
--- a/src/main/scala/org/perl8/test/package.scala
+++ b/src/main/scala/org/perl8/test/package.scala
@@ -15,22 +15,31 @@ package object test {
val message: Option[String]
}
- case class NumericPlan (
- override val plan: Int
- ) extends Plan {
- override val skipAll = false
- override val message = None
+ case class NumericPlan (plan: Int) extends Plan {
+ val skipAll = false
+ val message = None
}
- case class SkipAll (
- override val message: Option[String] = None
- ) extends Plan {
- override val plan = 0
- override val skipAll = true
+ case object NoPlan extends Plan {
+ val plan = 0
+ val skipAll = false
+ val message = None
+ }
+
+ case class SkipAll (msg: String) extends Plan {
+ val plan = 0
+ val skipAll = true
+ val message = Some(msg)
+ }
+
+ case object SkipAllNoMessage extends Plan {
+ val plan = 0
+ val skipAll = true
+ val message = None
}
object SkipAll {
- def apply (reason: String) = new SkipAll(Some(reason))
+ def apply () = SkipAllNoMessage
}
sealed trait Message
diff --git a/src/main/scala/org/perl8/test/tap/Consumer.scala b/src/main/scala/org/perl8/test/tap/Consumer.scala
index 49f642d..e9fd6d4 100644
--- a/src/main/scala/org/perl8/test/tap/Consumer.scala
+++ b/src/main/scala/org/perl8/test/tap/Consumer.scala
@@ -125,7 +125,7 @@ object Consumer {
class TAPResult (val plan: Plan, val results: Seq[TestResult]) {
val correctPlan = plan match {
case NumericPlan(n) => results.length == n
- case SkipAll(_) => results.length == 0
+ case _ => results.length == 0
}
val fails = results.count { r =>
diff --git a/src/main/scala/org/perl8/test/tap/TestBuilder.scala b/src/main/scala/org/perl8/test/tap/TestBuilder.scala
index 26fb5d6..432f902 100644
--- a/src/main/scala/org/perl8/test/tap/TestBuilder.scala
+++ b/src/main/scala/org/perl8/test/tap/TestBuilder.scala
@@ -3,19 +3,19 @@ package org.perl8.test.tap
import org.perl8.test._
class TestBuilder private (
- plan: Option[Plan],
+ plan: Plan,
indent: String,
terminalInUse: Boolean
) {
- plan.foreach(p => outLine(Producer.plan(p)))
+ plan match {
+ case NoPlan => ()
+ case p => outLine(Producer.plan(p))
+ }
- def this (plan: Option[Plan], terminalInUse: Boolean) =
+ def this (plan: Plan = NoPlan, terminalInUse: Boolean = false) =
this(plan, "", terminalInUse)
- def this (plan: Option[Plan]) =
- this(plan, "", false)
-
- def cloneForSubtest (newPlan: Option[Plan]): TestBuilder =
+ def cloneForSubtest (newPlan: Plan): TestBuilder =
new TestBuilder(newPlan, indent + " ", terminalInUse)
def ok (
@@ -51,15 +51,15 @@ class TestBuilder private (
def doneTesting: Boolean = {
plan match {
- case None => outLine(Producer.plan(state.currentTest - 1))
- case _ => ()
+ case NoPlan => outLine(Producer.plan(state.currentTest - 1))
+ case _ => ()
}
if (!state.isPassing) {
if (!state.matchesPlan) {
val planCount = (plan match {
- case Some(p) => p.plan
- case None => state.currentTest - 1
+ case NoPlan => state.currentTest - 1
+ case p => p.plan
})
val planned = planCount + " test" + (if (planCount > 1) "s" else "")
val ran = state.currentTest - 1
@@ -128,8 +128,9 @@ class TestBuilder private (
def currentTest: Int =
failCount + passCount + 1
- def matchesPlan: Boolean = plan.forall { p =>
- p.plan == failCount + passCount
+ def matchesPlan: Boolean = plan match {
+ case NumericPlan(p) => p.plan == failCount + passCount
+ case _ => true
}
def isPassing: Boolean =
diff --git a/src/test/scala/org/perl8/test/tap/TestBuilderTest.scala b/src/test/scala/org/perl8/test/tap/TestBuilderTest.scala
index 56c1a98..6aff4a1 100644
--- a/src/test/scala/org/perl8/test/tap/TestBuilderTest.scala
+++ b/src/test/scala/org/perl8/test/tap/TestBuilderTest.scala
@@ -9,7 +9,7 @@ class TestBuilderTest extends TestMore {
val output = new ByteArrayOutputStream
Console.withOut(output) {
Console.withErr(output) {
- val builder = new TestBuilder(Some(4))
+ val builder = new TestBuilder(4)
builder.ok(true, "test succeeded")
builder.ok(false, "test failed")
builder.ok(true)
@@ -33,7 +33,7 @@ class TestBuilderTest extends TestMore {
val output = new ByteArrayOutputStream
Console.withOut(output) {
Console.withErr(output) {
- val builder = new TestBuilder(None)
+ val builder = new TestBuilder
builder.ok(true, "test succeeded")
builder.ok(false, "test failed")
builder.ok(true)
@@ -57,7 +57,7 @@ class TestBuilderTest extends TestMore {
val output = new ByteArrayOutputStream
Console.withOut(output) {
Console.withErr(output) {
- val builder = new TestBuilder(None)
+ val builder = new TestBuilder
builder.doneTesting
}
}
@@ -73,7 +73,7 @@ class TestBuilderTest extends TestMore {
val output = new ByteArrayOutputStream
Console.withOut(output) {
Console.withErr(output) {
- val builder = new TestBuilder(None)
+ val builder = new TestBuilder
builder.ok(true, "the test passes")
builder.ok(false, "the test passes")
builder.diag("got false, expected true")
@@ -104,7 +104,7 @@ class TestBuilderTest extends TestMore {
is(
Console.withOut(output) {
Console.withErr(output) {
- val builder = new TestBuilder(None)
+ val builder = new TestBuilder
builder.doneTesting
}
},
@@ -114,7 +114,7 @@ class TestBuilderTest extends TestMore {
is(
Console.withOut(output) {
Console.withErr(output) {
- val builder = new TestBuilder(None)
+ val builder = new TestBuilder
builder.ok(true)
builder.doneTesting
}
@@ -125,7 +125,7 @@ class TestBuilderTest extends TestMore {
is(
Console.withOut(output) {
Console.withErr(output) {
- val builder = new TestBuilder(None)
+ val builder = new TestBuilder
builder.ok(true)
builder.ok(false)
builder.doneTesting
@@ -137,7 +137,7 @@ class TestBuilderTest extends TestMore {
is(
Console.withOut(output) {
Console.withErr(output) {
- val builder = new TestBuilder(None)
+ val builder = new TestBuilder
builder.ok(true)
builder.ok(false)
builder.ok(true)
@@ -154,7 +154,7 @@ class TestBuilderTest extends TestMore {
val oldErr = Console.err
Console.withOut(output) {
Console.withErr(output) {
- val builder = new TestBuilder(None)
+ val builder = new TestBuilder
builder.ok(true)
try {
builder.bailOut("oh no!")
@@ -190,7 +190,7 @@ class TestBuilderTest extends TestMore {
val output = new ByteArrayOutputStream
Console.withOut(output) {
Console.withErr(output) {
- val builder = new TestBuilder(Some(SkipAll()))
+ val builder = new TestBuilder(SkipAll())
}
}
@@ -204,7 +204,7 @@ class TestBuilderTest extends TestMore {
val output = new ByteArrayOutputStream
Console.withOut(output) {
Console.withErr(output) {
- val builder = new TestBuilder(Some(SkipAll("foo bar")))
+ val builder = new TestBuilder(SkipAll("foo bar"))
}
}
@@ -218,7 +218,7 @@ class TestBuilderTest extends TestMore {
val output = new ByteArrayOutputStream
Console.withOut(output) {
Console.withErr(output) {
- val builder = new TestBuilder(None)
+ val builder = new TestBuilder
builder.ok(false)
builder.skip("not now")
builder.skip()
@@ -240,7 +240,7 @@ class TestBuilderTest extends TestMore {
val output = new ByteArrayOutputStream
Console.withOut(output) {
Console.withErr(output) {
- val builder = new TestBuilder(None)
+ val builder = new TestBuilder
builder.ok(false, "do a thing", todo = "not working yet")
builder.ok(true, todo = "is it?")
builder.doneTesting