aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorJon Pretty <jon.pretty@propensive.com>2018-06-06 21:27:28 +0100
committerJon Pretty <jon.pretty@propensive.com>2018-06-06 21:27:28 +0100
commit091788d0ad6f94c91cc20d6074c3403934702325 (patch)
tree11416ba645230b6a7a5ef50a982dd3d07e97cc40 /tests
parenta59b1e72c9ad076034bde13be1e0f90452b45f20 (diff)
downloadmagnolia-091788d0ad6f94c91cc20d6074c3403934702325.tar.gz
magnolia-091788d0ad6f94c91cc20d6074c3403934702325.tar.bz2
magnolia-091788d0ad6f94c91cc20d6074c3403934702325.zip
Permit derivations of products when `dispatch` not defined
Diffstat (limited to 'tests')
-rw-r--r--tests/src/main/scala/tests.scala15
1 files changed, 14 insertions, 1 deletions
diff --git a/tests/src/main/scala/tests.scala b/tests/src/main/scala/tests.scala
index c3b90cc..f408253 100644
--- a/tests/src/main/scala/tests.scala
+++ b/tests/src/main/scala/tests.scala
@@ -55,7 +55,6 @@ case object Red extends Color
case object Green extends Color
case object Blue extends Color
-
case class MyAnnotation(order: Int) extends StaticAnnotation
@MyAnnotation(0) case class Attributed(
@@ -382,5 +381,19 @@ object Tests extends TestApp {
Show.gen[Attributed].show(Attributed("xyz", 100))
}.assert(_ == "Attributed{MyAnnotation(0)}(p1{MyAnnotation(1)}=xyz,p2{MyAnnotation(2)}=100)")
+ test("allow no-coproduct derivation definitions") {
+ scalac"""
+ WeakHash.gen[Person]
+ """
+ }.assert(_ == Returns(fqt"magnolia.examples.WeakHash.Typeclass[magnolia.tests.Person]"))
+
+ test("disallow coproduct derivations without dispatch method") {
+ scalac"""
+ WeakHash.gen[Entity]
+ """
+ }.assert(_ == TypecheckError("magnolia: the method `dispatch` must be defined on the derivation object WeakHash to derive typeclasses for sealed traits"))
+
+
+
}
}