@@ -2,7 +2,8 @@ package tools.jackson.module.scala.ser
2
2
3
3
import com .fasterxml .jackson .annotation .JsonProperty .Access
4
4
import com .fasterxml .jackson .annotation ._
5
- import tools .jackson .databind .{MapperFeature , ObjectMapper , PropertyNamingStrategies }
5
+ import tools .jackson .databind .cfg .MutableConfigOverride
6
+ import tools .jackson .databind .{ObjectMapper , PropertyNamingStrategies }
6
7
import tools .jackson .module .scala .DefaultScalaModule
7
8
8
9
import scala .beans .BeanProperty
@@ -63,8 +64,14 @@ case class PrivateDefaultFields(
63
64
case class ClassWithUnitField (field : Unit , intField : Int )
64
65
case class ClassWithOnlyUnitField (field : Unit )
65
66
67
+ object CaseClassSerializerTest {
68
+ case class BigDecimalHolder (bigDecimal : BigDecimal )
69
+ }
70
+
66
71
class CaseClassSerializerTest extends SerializerTest {
67
72
73
+ import CaseClassSerializerTest ._
74
+
68
75
case class NestedClass (field : String )
69
76
70
77
def module = DefaultScalaModule
@@ -212,4 +219,14 @@ class CaseClassSerializerTest extends SerializerTest {
212
219
serialize(GeneratedDefaultArgumentClass ()) shouldEqual " {}"
213
220
}
214
221
222
+ it should " serialize BigDecimalHolder" in {
223
+ serialize(BigDecimalHolder (BigDecimal (" 123.456" ))) shouldEqual """ {"bigDecimal":123.456}"""
224
+ }
225
+
226
+ it should " serialize BigDecimalHolder (JsonFormat.Shape.STRING)" in {
227
+ val builder = newBuilder
228
+ .withConfigOverride(classOf [BigDecimal ],
229
+ (c : MutableConfigOverride ) => c.setFormat(JsonFormat .Value .forShape(JsonFormat .Shape .STRING )))
230
+ serialize(BigDecimalHolder (BigDecimal (" 123.456" )), builder.build()) shouldEqual """ {"bigDecimal":"123.456"}"""
231
+ }
215
232
}
0 commit comments