From a822c2987fa89d980673419c53ce48356c111779 Mon Sep 17 00:00:00 2001 From: Neville Li Date: Tue, 23 Feb 2021 23:13:47 -0500 Subject: [PATCH] test cats vs algebird implicits, fix #142 --- build.sbt | 4 ++- .../magnolify/cats/test/AlgebirdSuite.scala | 34 +++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 cats/src/test/scala/magnolify/cats/test/AlgebirdSuite.scala diff --git a/build.sbt b/build.sbt index ae6c4d3a2..d68b174a5 100644 --- a/build.sbt +++ b/build.sbt @@ -19,6 +19,7 @@ description := "A collection of Magnolia add-on modules" val magnoliaVersion = "0.17.0" +val algebirdVersion = "0.13.7" val avroVersion = Option(sys.props("avro.version")).getOrElse("1.10.1") val bigqueryVersion = "v2-rev20210215-1.31.0" val bigtableVersion = "1.20.1" @@ -189,7 +190,8 @@ lazy val cats: Project = project description := "Magnolia add-on for Cats", libraryDependencies ++= Seq( "org.typelevel" %% "cats-core" % catsVersion, - "org.typelevel" %% "cats-laws" % catsVersion % Test + "org.typelevel" %% "cats-laws" % catsVersion % Test, + "com.twitter" %% "algebird-core" % algebirdVersion % Test ) ) .dependsOn( diff --git a/cats/src/test/scala/magnolify/cats/test/AlgebirdSuite.scala b/cats/src/test/scala/magnolify/cats/test/AlgebirdSuite.scala new file mode 100644 index 000000000..729be5004 --- /dev/null +++ b/cats/src/test/scala/magnolify/cats/test/AlgebirdSuite.scala @@ -0,0 +1,34 @@ +/* + * Copyright 2021 Spotify AB. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package magnolify.cats.test + +import cats._ +import com.twitter.algebird.{Semigroup => _, _} +import magnolify.cats.auto._ +import magnolify.test._ + +import scala.reflect.ClassTag + +class AlgebirdSuite extends MagnolifySuite { + private def test[T: ClassTag](x: T, y: T, expected: T)(implicit sg: Semigroup[T]): Unit = + test(className[T]) { + assertEquals(sg.combine(x, y), expected) + } + + test(Min(0), Min(1), Min(0)) + test(Max(0), Max(1), Max(1)) +}