aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArtRand <arand@soe.ucsc.edu>2018-02-09 10:05:38 -0800
committerArtRand <arand@soe.ucsc.edu>2018-02-09 10:05:38 -0800
commit574fbd72cea70a289c9c692edfa60511c243b9f4 (patch)
tree5c6ba6481ecd8b11010a5d55701483ae8f5a40a7
parent3765c504d8bdfcc7ca3a5bdafa44351c1908596e (diff)
downloaddriver-core-574fbd72cea70a289c9c692edfa60511c243b9f4.tar.gz
driver-core-574fbd72cea70a289c9c692edfa60511c243b9f4.tar.bz2
driver-core-574fbd72cea70a289c9c692edfa60511c243b9f4.zip
add expectExistsAndValid
-rw-r--r--src/main/scala/xyz/driver/core/database/Converters.scala5
-rw-r--r--src/test/scala/xyz/driver/core/database/DatabaseTest.scala5
2 files changed, 10 insertions, 0 deletions
diff --git a/src/main/scala/xyz/driver/core/database/Converters.scala b/src/main/scala/xyz/driver/core/database/Converters.scala
index f98d6b4..6faf627 100644
--- a/src/main/scala/xyz/driver/core/database/Converters.scala
+++ b/src/main/scala/xyz/driver/core/database/Converters.scala
@@ -10,4 +10,9 @@ trait Converters {
def expectValid[ADT](mapper: String => Option[ADT], query: String)(implicit ct: ClassTag[ADT]): ADT =
fromStringOrThrow[ADT](query, mapper, ct.toString())
+
+ def expectExistsAndValid[ADT](mapper: String => Option[ADT], query: Option[String], contextMsg: String = "")(
+ implicit ct: ClassTag[ADT]): ADT = {
+ expectValid[ADT](mapper, query.getOrElse(throw DatabaseException(contextMsg)))
+ }
}
diff --git a/src/test/scala/xyz/driver/core/database/DatabaseTest.scala b/src/test/scala/xyz/driver/core/database/DatabaseTest.scala
index a5c65ea..bd72b68 100644
--- a/src/test/scala/xyz/driver/core/database/DatabaseTest.scala
+++ b/src/test/scala/xyz/driver/core/database/DatabaseTest.scala
@@ -17,12 +17,17 @@ class DatabaseTest extends FlatSpec with Matchers with Checkers {
val validLength = nextInt(10)
val valid = nextToken(validLength)
+ val validOp = Some(valid)
val invalid = nextToken(validLength + nextInt(10, 1))
+ val invalidOp = Some(invalid)
def mapper(s: String): Option[String] = if (s.length == validLength) Some(s) else None
TestConverter.fromStringOrThrow(valid, mapper, valid) should be(valid)
TestConverter.expectValid(mapper, valid) should be(valid)
+ TestConverter.expectExistsAndValid(mapper, validOp) should be(valid)
+
an[DatabaseException] should be thrownBy TestConverter.fromStringOrThrow(invalid, mapper, invalid)
+ an[DatabaseException] should be thrownBy TestConverter.expectExistsAndValid(mapper, invalidOp)
}
}