From ea49093016f12989233bbb402f49b37b230e4c40 Mon Sep 17 00:00:00 2001 From: Stewart Stewart Date: Sun, 18 Dec 2016 19:32:50 -0500 Subject: add tests for typesafe id conversion --- src/test/scala/xyz/driver/core/CoreTest.scala | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/test/scala/xyz/driver/core/CoreTest.scala') 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) -- cgit v1.2.3