aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStewart Stewart <stewinsalot@gmail.com>2016-12-18 19:32:50 -0500
committerStewart Stewart <stewinsalot@gmail.com>2016-12-18 19:32:50 -0500
commitea49093016f12989233bbb402f49b37b230e4c40 (patch)
treed396d945f5246495d103e81658b0f20a0b954f24
parente3c4666f718797defab28dc90a9c1912f5750223 (diff)
downloaddriver-core-ea49093016f12989233bbb402f49b37b230e4c40.tar.gz
driver-core-ea49093016f12989233bbb402f49b37b230e4c40.tar.bz2
driver-core-ea49093016f12989233bbb402f49b37b230e4c40.zip
add tests for typesafe id conversion
-rw-r--r--src/test/scala/xyz/driver/core/CoreTest.scala17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/test/scala/xyz/driver/core/CoreTest.scala b/src/test/scala/xyz/driver/core/CoreTest.scala
index 3eb9eaa..1ccd707 100644
--- a/src/test/scala/xyz/driver/core/CoreTest.scala
+++ b/src/test/scala/xyz/driver/core/CoreTest.scala
@@ -39,6 +39,23 @@ class CoreTest extends FlatSpec with Matchers with MockitoSugar {
theSameElementsInOrderAs(Seq(Id[String]("1"), Id[String]("2"), Id[String]("3"), Id[String]("4")))
}
+ it should "have type-safe conversions" in {
+ final case class X(id: Id[X])
+ final case class Y(id: Id[Y])
+ final case class Z(id: Id[Z])
+
+ implicit val xy = Id.SameId[X,Y]
+ implicit val yz = Id.SameId[Y,Z]
+
+ val x = X(Id("0"))
+ val y = Y(x.id.asId[Y])
+ val z = Z(y.id.asId[Z])
+ val y2 = Y(z.id.asId[Y])
+ val x2 = X(z.id.asId[Y].asId[X])
+ x2 === x
+ y2 === y
+ }
+
"Name" should "have equality and ordering working correctly" in {
(Name[String]("foo") === Name[String]("foo")) should be(true)