aboutsummaryrefslogtreecommitdiff
path: root/src/test/scala/xyz/driver/pdsuicommon/parsers/TestUtils.scala
diff options
context:
space:
mode:
authorJakob Odersky <jakob@driver.xyz>2017-08-08 00:11:13 -0700
committerJakob Odersky <jakob@driver.xyz>2017-08-16 19:26:10 -0700
commita59d6910eaccf9b5540fb41648a7d4e67cc241b5 (patch)
treec27ba7bb752835c47b0f569ea8c48c3bed21e513 /src/test/scala/xyz/driver/pdsuicommon/parsers/TestUtils.scala
parent75fcedad9270c70c014af819b7d46dcfe00c1282 (diff)
downloadrest-query-a59d6910eaccf9b5540fb41648a7d4e67cc241b5.tar.gz
rest-query-a59d6910eaccf9b5540fb41648a7d4e67cc241b5.tar.bz2
rest-query-a59d6910eaccf9b5540fb41648a7d4e67cc241b5.zip
Fix parsers and renable fatal warnings
Diffstat (limited to 'src/test/scala/xyz/driver/pdsuicommon/parsers/TestUtils.scala')
-rw-r--r--src/test/scala/xyz/driver/pdsuicommon/parsers/TestUtils.scala52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/test/scala/xyz/driver/pdsuicommon/parsers/TestUtils.scala b/src/test/scala/xyz/driver/pdsuicommon/parsers/TestUtils.scala
new file mode 100644
index 0000000..4892b95
--- /dev/null
+++ b/src/test/scala/xyz/driver/pdsuicommon/parsers/TestUtils.scala
@@ -0,0 +1,52 @@
+package xyz.driver.pdsuicommon.parsers
+
+import org.scalacheck.Prop
+import org.scalacheck.Prop.BooleanOperators
+import org.scalatest.matchers.{MatchResult, Matcher}
+import xyz.driver.pdsuicommon.utils.Utils
+
+import scala.reflect.ClassTag
+import scala.util.{Failure, Success, Try}
+
+object TestUtils {
+
+ object success extends Matcher[Try[Any]] {
+ override def apply(left: Try[Any]) = {
+ MatchResult(left.isSuccess, s"$left did not fail", s"did fail with $left")
+ }
+ }
+
+ class FailWith[ThrowableT <: Throwable](implicit ct: ClassTag[ThrowableT]) extends Matcher[Try[Any]] {
+ override def apply(left: Try[Any]): MatchResult = {
+ MatchResult(
+ left.isFailure && left.failed.get.getClass == ct.runtimeClass,
+ left match {
+ case Success(x) => s"$left did not fail"
+ case Failure(e) => s"$left did fail with ${Utils.getClassSimpleName(e.getClass)}, " +
+ s"not ${Utils.getClassSimpleName(ct.runtimeClass)}"
+ },
+ left match {
+ case Success(_) => s"$left failed with ${Utils.getClassSimpleName(ct.runtimeClass)}"
+ case Failure(e) => s"$left failed with ${Utils.getClassSimpleName(e.getClass)}"
+ }
+ )
+ }
+ }
+
+ def failWith[ThrowableT <:Throwable](implicit ct: ClassTag[ThrowableT]) = new FailWith[ThrowableT]
+
+ final implicit class TryPropOps(val self: Try[Any]) extends AnyVal {
+
+ def successProp: Prop = self match {
+ case Success(_) => true :| "ok"
+ case Failure(e) => false :| e.getMessage
+ }
+
+ def failureProp: Prop = self match {
+ case Success(x) => false :| s"invalid: $x"
+ case Failure(e) => true
+ }
+
+ }
+
+}