Skip to content

windymelt/scalatest-playjson-equality

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ScalaTest Equality definition for Play JSON

CI Latest version scaladoc

Install

On sbt:

libraryDependencies += "dev.capslock" %% "scalatest-play-json-equality" % scalaTestEqualityPlayJsonVersion

Usage

You can compare JsValue with JsNumber tolerance in ScalaTest.

import dev.capslock.scalatestplayjson.Equality.default._

val json1 = Json.parse("""{"a": 1, "b": 2}""")
val json2 = Json.parse("""{"a": 1, "b": 2.0000000000000001}""")

// default tolerance is applied
json1 shouldEqual json2

You can specify tolerance:

import dev.capslock.scalatestplayjson.Equality.{jsonEquality, jsNumberEquality}

val json1 = Json.parse("""{"a": 1, "b": 2}""")
val json2 = Json.parse("""{"a": 1, "b": 3}""")
json1 should equal(json2)(decided by jsonEquality(jsNumberEquality(1)))

This is equivalent to:

import dev.capslock.scalatestplayjson.Equality.{jsonEquality, jsNumberEquality} // you need jsonEquality to provide context
implicit val jEq: org.scalactic.Equality[JsNumber] = jsNumberEquality(1)

val json1 = Json.parse("""{"a": 1, "b": 2}""")
val json2 = Json.parse("""{"a": 1, "b": 3}""")
json1 shouldEqual json2

See test to more example.

Release

dotenvx run -- sbt -v 'clean; +publishSigned; sonatypeBundleRelease'

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages