diff options
author | ArtRand <arand@soe.ucsc.edu> | 2018-02-09 10:05:38 -0800 |
---|---|---|
committer | ArtRand <arand@soe.ucsc.edu> | 2018-02-09 10:05:38 -0800 |
commit | 574fbd72cea70a289c9c692edfa60511c243b9f4 (patch) | |
tree | 5c6ba6481ecd8b11010a5d55701483ae8f5a40a7 | |
parent | 3765c504d8bdfcc7ca3a5bdafa44351c1908596e (diff) | |
download | driver-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.scala | 5 | ||||
-rw-r--r-- | src/test/scala/xyz/driver/core/database/DatabaseTest.scala | 5 |
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) } } |