@@ -3,7 +3,7 @@ package tools.jackson.module.scala.ser
33import com .fasterxml .jackson .annotation .JsonProperty .Access
44import com .fasterxml .jackson .annotation ._
55import tools .jackson .databind .cfg .MutableConfigOverride
6- import tools .jackson .databind .{ObjectMapper , PropertyNamingStrategies }
6+ import tools .jackson .databind .{MapperFeature , ObjectMapper , PropertyNamingStrategies }
77import tools .jackson .module .scala .DefaultScalaModule
88
99import scala .beans .BeanProperty
@@ -66,6 +66,7 @@ case class ClassWithOnlyUnitField(field: Unit)
6666
6767object CaseClassSerializerTest {
6868 case class BigDecimalHolder (bigDecimal : BigDecimal )
69+ case class ClassWithUnorderedFields (f3 : Int = 3 , f2 : Int = 2 , f0 : Int = 0 , f1 : Int = 1 )
6970}
7071
7172class CaseClassSerializerTest extends SerializerTest {
@@ -229,4 +230,12 @@ class CaseClassSerializerTest extends SerializerTest {
229230 (c : MutableConfigOverride ) => c.setFormat(JsonFormat .Value .forShape(JsonFormat .Shape .STRING )))
230231 serialize(BigDecimalHolder (BigDecimal (" 123.456" )), builder.build()) shouldEqual """ {"bigDecimal":"123.456"}"""
231232 }
233+
234+ it should " sort properties of the case class" in {
235+ val mapper = newBuilder
236+ .enable(MapperFeature .SORT_PROPERTIES_ALPHABETICALLY )
237+ .disable(MapperFeature .SORT_CREATOR_PROPERTIES_FIRST )
238+ .build()
239+ serialize(ClassWithUnorderedFields (), mapper) shouldEqual """ {"f0":0,"f1":1,"f2":2,"f3":3}"""
240+ }
232241}
0 commit comments