Skip to content

Commit a955f44

Browse files
authored
add AnyValDeserializerTest (#676)
1 parent f39a54a commit a955f44

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.fasterxml.jackson.module.scala.deser
2+
3+
import com.fasterxml.jackson.module.scala.deser.AnyValDeserializerTest.DoubleAnyValHolder
4+
import com.fasterxml.jackson.module.scala.{DefaultScalaModule, JacksonModule}
5+
6+
object AnyValDeserializerTest {
7+
case class DoubleAnyVal(underlying: Double) extends AnyVal
8+
case class DoubleAnyValHolder(value: DoubleAnyVal)
9+
10+
case class BigIntAnyVal(underlying: BigInt) extends AnyVal
11+
case class BigIntAnyValHolder(value: BigIntAnyVal)
12+
case class BigIntOptionAnyValHolder(value: Option[BigIntAnyVal])
13+
}
14+
15+
class AnyValDeserializerTest extends DeserializerTest {
16+
import AnyValDeserializerTest._
17+
18+
lazy val module: JacksonModule = DefaultScalaModule
19+
20+
behavior of "AnyVal"
21+
22+
it should "deserialize an Double AnyVal" in {
23+
val mapper = newMapper
24+
val expected = DoubleAnyVal(42)
25+
mapper.readValue("""{"underlying":42.0}""", classOf[DoubleAnyVal]) shouldEqual expected
26+
mapper.readValue("""{"value":42.0}""", classOf[DoubleAnyValHolder]) shouldEqual DoubleAnyValHolder(expected)
27+
}
28+
29+
it should "deserialize an BigInt AnyVal" in {
30+
val mapper = newMapper
31+
val expected = BigIntAnyVal(42)
32+
mapper.readValue("""{"underlying":42}""", classOf[BigIntAnyVal]) shouldEqual expected
33+
mapper.readValue("""{"value":42}""", classOf[BigIntAnyValHolder]) shouldEqual BigIntAnyValHolder(expected)
34+
//mapper.readValue("""{"value":{"underlying":42}}""", classOf[BigIntOptionAnyValHolder]) shouldEqual
35+
//BigIntOptionAnyValHolder(Some(expected))
36+
}
37+
}

0 commit comments

Comments
 (0)