Skip to content
This repository has been archived by the owner on Apr 10, 2023. It is now read-only.

Commit

Permalink
Merge 636ef61 into f59aa62
Browse files Browse the repository at this point in the history
  • Loading branch information
jeremyrsmith committed Mar 13, 2017
2 parents f59aa62 + 636ef61 commit 6b8bc45
Show file tree
Hide file tree
Showing 9 changed files with 23 additions and 20 deletions.
9 changes: 5 additions & 4 deletions build.sbt
@@ -1,13 +1,14 @@
name := "reeds"
organization in ThisBuild := "com.acorns"
version in ThisBuild := "1.0.7"
version in ThisBuild := "1.0.8"

scalaVersion in ThisBuild := "2.11.8"
crossScalaVersions in ThisBuild := Seq("2.11.8", "2.12.1")

libraryDependencies in ThisBuild ++= Seq(
"org.typelevel" %% "cats-jvm" % "0.7.2",
"org.scalatest" %% "scalatest" % "3.0.0" % "test",
"org.scalacheck" %% "scalacheck" % "1.13.2" % "test"
"org.typelevel" %% "cats-jvm" % "0.9.0",
"org.scalatest" %% "scalatest" % "3.0.1" % "test",
"org.scalacheck" %% "scalacheck" % "1.13.4" % "test"
)


Expand Down
2 changes: 1 addition & 1 deletion project/build.properties
@@ -1 +1 @@
sbt.version = 0.13.8
sbt.version = 0.13.13
2 changes: 1 addition & 1 deletion project/plugins.sbt
@@ -1,5 +1,5 @@
logLevel := Level.Warn
addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.3.5")
addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.5.0")
addSbtPlugin("org.scoverage" % "sbt-coveralls" % "1.1.0")
addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "1.1")
addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.0.0")
4 changes: 2 additions & 2 deletions reeds-circe/build.sbt
@@ -1,6 +1,6 @@
name := "reeds-circe"

libraryDependencies ++= Seq(
"io.circe" %% "circe-core" % "0.5.2",
"io.circe" %% "circe-core" % "0.7.0",
"com.chuusai" %% "shapeless" % "2.3.2"
)
)
3 changes: 2 additions & 1 deletion reeds-circe/src/main/scala/reeds/circe/package.scala
@@ -1,5 +1,6 @@
package reeds

import cats.syntax.either._
import io.circe.{Decoder, DecodingFailure, HCursor, export}, export.Exported

package object circe {
Expand All @@ -13,7 +14,7 @@ package object circe {
cursor => Decoder.decodeString(cursor) flatMap {
str => reads(str).leftMap {
failure => DecodingFailure(failure.head.getMessage, cursor.history)
}.toXor
}.toEither
}
}
}
Expand Down
6 changes: 3 additions & 3 deletions reeds-circe/src/test/scala/PriorityTest.scala
@@ -1,7 +1,7 @@
import java.time.OffsetDateTime
import java.util.UUID

import cats.data.Xor
import cats.syntax.either._
import reeds.circe._
import io.circe._
import org.scalatest.FlatSpec
Expand All @@ -13,7 +13,7 @@ class PriorityTest extends FlatSpec {
val decoder = implicitly[Decoder[OffsetDateTime]]
val dt = OffsetDateTime.now()
val json = Json.fromString(dt.toString)
assert(decoder.apply(json.hcursor) == Xor.Right(dt))
assert(decoder.apply(json.hcursor) == Right(dt))
val result = decoder.apply(Json.fromString("not a uuid").hcursor)
assert(result.isLeft)
result.leftMap { err =>
Expand All @@ -29,7 +29,7 @@ class PriorityTest extends FlatSpec {
"reedsToDecoder" should "convert a reads instance to a circe decoder" in {
val decoder = implicitly[Reads[UUID]].toDecoder
val json = Json.fromString("deadbeef-dead-dead-beef-deaddeadbeef")
assert(decoder.apply(json.hcursor) == Xor.Right(UUID.fromString("deadbeef-dead-dead-beef-deaddeadbeef")))
assert(decoder.apply(json.hcursor) == Right(UUID.fromString("deadbeef-dead-dead-beef-deaddeadbeef")))
}

}
6 changes: 3 additions & 3 deletions reeds-core/src/test/scala/reeds/MathTests.scala
@@ -1,9 +1,9 @@
package reeds

import cats.data.Validated.Valid
import cats.syntax.either._
import org.scalacheck.{Arbitrary, Gen}
import Arbitrary.arbitrary
import cats.data.Xor
import org.scalatest.FreeSpec
import org.scalatest.prop.{PropertyChecks, TableDrivenPropertyChecks}

Expand All @@ -21,7 +21,7 @@ class MathTests extends FreeSpec with PropertyChecks with TableDrivenPropertyChe
"reads BigDecimals" in {
forAll(arbitrary[BigDecimal]) {
t =>
val str = Xor.catchNonFatal(t.bigDecimal.toPlainString)
val str = Either.catchNonFatal(t.bigDecimal.toPlainString)
str foreach (s => assert(subject(s) == Valid(t)))
}
}
Expand All @@ -35,7 +35,7 @@ class MathTests extends FreeSpec with PropertyChecks with TableDrivenPropertyChe
"reads BigInts" in {
forAll(arbitrary[BigInt]) {
t =>
val str = Xor.catchNonFatal(t.toString)
val str = Either.catchNonFatal(t.toString)
str foreach (s => assert(subject(s) == Valid(t)))
}
}
Expand Down
Expand Up @@ -6,6 +6,7 @@ import java.util.UUID
import cats.data.Validated.{Invalid, Valid}
import cats.data._
import cats.instances.list._
import cats.syntax.either._
import org.scalatest.{FeatureSpec, GivenWhenThen}
import shapeless.Default

Expand Down Expand Up @@ -76,7 +77,7 @@ class DefaultTests extends FeatureSpec with GivenWhenThen {
assert(result.isInvalid)

And("only the field without a default should be reported as an error")
val errors = result.toXor.swap.toOption.get
val errors = result.swap.getOrElse(fail("no failure"))
assert(errors == NonEmptyList.of(MissingField("id")))
}

Expand All @@ -91,7 +92,7 @@ class DefaultTests extends FeatureSpec with GivenWhenThen {
assert(result.isInvalid)

And("errors should be aggregated")
val errors = result.toXor.swap.toOption.get.toList
val errors = result.swap.getOrElse(fail("no failure")).toList
assert(errors.length == 3)
}

Expand Down
Expand Up @@ -86,7 +86,7 @@ class FunctorTests extends FeatureSpec with GivenWhenThen {
assert(result.isInvalid)

And("errors should be aggregated")
val errors = result.toXor.swap.toOption.get.toList
val errors = result.swap.toOption.getOrElse(fail("no failure")).toList
assert(errors.length == 2)
assert(errors exists (err => err.getMessage == "'not a valid UUID' is not a valid UUID."))
assert(errors exists (_.isInstanceOf[java.lang.NumberFormatException]))
Expand Down Expand Up @@ -118,7 +118,7 @@ class FunctorTests extends FeatureSpec with GivenWhenThen {
assert(result.isInvalid)

And("errors should be aggregated")
val errors = result.toXor.swap.toOption.get.toList
val errors = result.swap.getOrElse(fail("no failure")).toList
assert(errors.length == 2)
assert(errors exists (_.getMessage == "Missing non-optional field 'date'"))
assert(errors exists (_.getMessage == "Missing non-optional field 'id'"))
Expand All @@ -135,7 +135,7 @@ class FunctorTests extends FeatureSpec with GivenWhenThen {
assert(result.isInvalid)

And("errors should be aggregated")
val errors = result.toXor.swap.toOption.get.toList
val errors = result.swap.getOrElse(fail("no failure")).toList
assert(errors.length == 3)
}

Expand Down

0 comments on commit 6b8bc45

Please sign in to comment.