Skip to content

Commit 4da03c9

Browse files
committed
Added unit tests
1 parent ef84c81 commit 4da03c9

File tree

6 files changed

+50
-20
lines changed

6 files changed

+50
-20
lines changed

build.sbt

+2-12
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,6 @@ version := "0.1.0-SNAPSHOT"
66

77
scalaVersion := "2.12.3"
88

9-
/*crossScalaVersions := Seq("2.10.4", "2.11.2")
10-
11-
libraryDependencies ++= Seq(
12-
13-
"org.json4s" %% "json4s-native" % "3.5.3",
14-
"org.scalatest" %% "scalatest" % "3.0.1" % "test",
15-
"org.scalacheck" %% "scalacheck" % "1.13.4" % "test",
16-
"junit" % "junit" % "4.8.1" % "test"
17-
)*/
18-
199
resolvers ++= Seq("Typesafe Repository" at "http://repo.typesafe.com/typesafe/releases/",
2010
Resolver.bintrayRepo("hseeberger", "maven"))
2111

@@ -27,11 +17,11 @@ libraryDependencies ++= {
2717
"com.typesafe.akka" %% "akka-slf4j" % AkkaVersion,
2818
"com.typesafe.akka" %% "akka-http" % AkkaHttpVersion,
2919
"com.typesafe.akka" %% "akka-stream" % AkkaVersion,
30-
//"ch.qos.logback" % "logback-classic" % "1.1.2",
3120
"org.json4s" %% "json4s-native" % Json4sVersion,
3221
"org.json4s" %% "json4s-core" % Json4sVersion,
3322
"org.json4s" %% "json4s-jackson" % Json4sVersion,
3423
"org.json4s" %% "json4s-ext" % Json4sVersion,
35-
"de.heikoseeberger" %% "akka-http-json4s" % "1.20.1"
24+
"de.heikoseeberger" %% "akka-http-json4s" % "1.20.1",
25+
"org.scalatest" %% "scalatest" % "3.0.1" % Test
3626
)
3727
}

src/main/scala/com/lansalo/json/serializer/AgeSerializer.scala

+1-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import org.json4s.JsonAST.JInt
66

77
case object AgeSerializer extends CustomSerializer[Age](format => ( {
88
case JInt(age) => new Age(age.intValue)
9-
},
10-
{
9+
}, {
1110
case age: Int => JInt(BigInt(age))
1211
}))

src/main/scala/com/lansalo/json/serializer/GenderSerializer.scala

+4-5
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,9 @@ import org.json4s.CustomSerializer
55
import org.json4s.JsonAST.JString
66

77
case object GenderSerializer extends CustomSerializer[Gender](format => ( {
8-
case JString(gender) => GenderHelper.toGender(gender).get
9-
},
10-
{
11-
case gender: Gender => JString(gender.sex)
12-
})
8+
case JString(gender) => GenderHelper.toGender(gender).get
9+
}, {
10+
case gender: Gender => JString(gender.sex)
11+
})
1312
)
1413

src/main/scala/com/lansalo/routes/UserRoutes.scala

-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ trait UserRoutes extends JsonSupport {
4040
get {
4141
complete(User(name, new Age(22), Female))
4242
}
43-
4443
}
4544
}
4645
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.lansalo.json.serializer
2+
3+
import com.lansalo.model.Age
4+
import org.json4s.JsonAST.JInt
5+
import org.json4s.DefaultFormats
6+
import org.scalatest.{FlatSpec, MustMatchers}
7+
8+
class AgeSerializerSpec extends FlatSpec with MustMatchers {
9+
10+
implicit val formats = DefaultFormats + AgeSerializer
11+
12+
"AgeSerializer" should "deserialize 22 into the corresponding object" in {
13+
JInt(22).extract[Age] mustBe new Age(22)
14+
}
15+
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.lansalo.json.serializer
2+
3+
import com.lansalo.model.{Gender, Male}
4+
import org.json4s.JsonAST.JString
5+
import org.json4s.native.Serialization.write
6+
import org.json4s.{DefaultFormats, MappingException}
7+
import org.scalatest.{FlatSpec, MustMatchers}
8+
9+
class GenderSerializerSpec extends FlatSpec with MustMatchers {
10+
11+
implicit val formats = DefaultFormats + GenderSerializer
12+
13+
"GenderSerializer" should "deserialize male into the corresponding object" in {
14+
JString("male").extract[Gender] mustBe Male
15+
}
16+
17+
it should "serialize male into json" in {
18+
write[Gender](Male) mustBe """"male""""
19+
}
20+
21+
it should " not serialize unrecognized genders and throw an exception" in {
22+
intercept[MappingException] {
23+
JString("bogus").extract[Gender]
24+
}
25+
}
26+
27+
}

0 commit comments

Comments
 (0)