From d09626ef05076145ad66b657bfa3d37cabddfd53 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Fri, 22 Feb 2013 02:21:24 -0600 Subject: tap parser --- .../scala/org/perl8/test/tap/ConsumerTest.scala | 123 +++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 src/test/scala/org/perl8/test/tap/ConsumerTest.scala (limited to 'src/test') diff --git a/src/test/scala/org/perl8/test/tap/ConsumerTest.scala b/src/test/scala/org/perl8/test/tap/ConsumerTest.scala new file mode 100644 index 0000000..7471a8c --- /dev/null +++ b/src/test/scala/org/perl8/test/tap/ConsumerTest.scala @@ -0,0 +1,123 @@ +package org.perl8.test.tap + +import org.scalatest.FunSuite + +import org.perl8.test.Utils._ + +class ConsumerTest extends FunSuite { + test ("basic") { + val tap = + "1..1\n" + + "ok 1\n" + + val result = Consumer.parse(tap) + assert(result.plan === NumericPlan(1)) + assert(result.results.map(_.passed) === Seq(true)) + } + + test ("skip all") { + val tap = + "1..0 # SKIP nope\n" + + val result = Consumer.parse(tap) + assert(result.plan === SkipAll("nope")) + assert(result.results === Seq()) + } + + test ("more complicated") { + val tap = + "# starting...\n" + + "ok 1 - stuff\n" + + "not ok 2 - does this work?\n" + + "not ok 3 - eventually # TODO doesn't work yet\n" + + "# skipping some stuff\n" + + "ok 4 # skip don't do this yet\n" + + "# finished!\n" + + "1..4\n" + + "# Looks like you failed 1 test of 4.\n" + + val result = Consumer.parse(tap) + assert(result.plan === NumericPlan(4)) + assert(result.results.map(_.passed) === Seq(true, false, false, true)) + assert(result.results.map(_.number) === Seq(1, 2, 3, 4)) + assert( + result.results.map(_.description) === Seq( + "- stuff", + "- does this work?", + "- eventually", + "" + ) + ) + assert( + result.results.map(_.directive) === Seq( + None, + None, + Some(TodoDirective(Some("doesn't work yet"))), + Some(SkipDirective(Some("don't do this yet"))) + ) + ) + } + + test ("subtests") { + val tap = + "ok 1 - not subtest\n" + + " ok 1 - passed\n" + + " not ok 2 - failed\n" + + " ok 3 - passed again\n" + + " 1..1\n" + + " ok 1 - sub-sub-test\n" + + " ok 4 - nested subtests\n" + + " 1..4\n" + + " # Looks like you failed 1 test of 4.\n" + + "not ok 2 - subtest\n" + + "1..2\n" + + "# Looks like you failed 1 test of 2.\n" + + val result = Consumer.parse(tap) + assert(result.plan === NumericPlan(2)) + assert(result.results.map(_.passed) === Seq(true, false)) + assert(result.results.map(_.number) === Seq(1, 2)) + assert( + result.results.map(_.description) === Seq( + "- not subtest", + "- subtest" + ) + ) + assert(result.results.map(_.directive) === Seq(None, None)) + + assert(result.results(0).subtest === None) + assert(result.results(1).subtest.isDefined) + + val subtest = result.results(1).subtest.get + assert(subtest.plan === NumericPlan(4)) + assert(subtest.results.map(_.passed) === Seq(true, false, true, true)) + assert(subtest.results.map(_.number) === Seq(1, 2, 3, 4)) + assert( + subtest.results.map(_.description) === Seq( + "- passed", + "- failed", + "- passed again", + "- nested subtests" + ) + ) + assert(subtest.results.map(_.directive) === Seq(None, None, None, None)) + + assert(subtest.results(0).subtest === None) + assert(subtest.results(1).subtest === None) + assert(subtest.results(2).subtest === None) + assert(subtest.results(3).subtest.isDefined) + + val subsubtest = subtest.results(3).subtest.get + assert(subsubtest.plan === NumericPlan(1)) + assert(subsubtest.results.map(_.passed) === Seq(true)) + assert(subsubtest.results.map(_.number) === Seq(1)) + assert( + subsubtest.results.map(_.description) === Seq( + "- sub-sub-test" + ) + ) + assert(subsubtest.results.map(_.directive) === Seq(None)) + + assert(subsubtest.results(0).subtest === None) + } +} -- cgit v1.2.3-54-g00ecf