11package com .fasterxml .jackson .module .scala .ser
22
3+ import com .fasterxml .jackson .annotation .{JsonAutoDetect , PropertyAccessor }
34import com .fasterxml .jackson .module .scala .DefaultScalaModule
45
56case object CaseObjectExample {
@@ -9,12 +10,35 @@ case object CaseObjectExample {
910
1011class CaseObjectSerializerTest extends SerializerTest {
1112
13+ case object Foo {
14+ val field : String = " bar"
15+ }
16+
1217 def module = DefaultScalaModule
1318
1419 " An ObjectMapper with the DefaultScalaModule" should " serialize a case object as a bean" in {
1520 serialize(CaseObjectExample ) should (
1621 equal (""" {"field1":"test","field2":42}""" ) or
17- equal (""" {"field2":42,"field1":"test"}""" )
22+ equal (""" {"field2":42,"field1":"test"}""" )
1823 )
1924 }
25+
26+ it should " serialize a case object when visibility settings set" ignore {
27+ val mapper = newBuilder
28+ .visibility(PropertyAccessor .FIELD , JsonAutoDetect .Visibility .ANY )
29+ .visibility(PropertyAccessor .GETTER , JsonAutoDetect .Visibility .NONE )
30+ .build()
31+ mapper.writeValueAsString(CaseObjectExample ) should (
32+ equal(""" {"field1":"test","field2":42}""" ) or
33+ equal(""" {"field2":42,"field1":"test"}""" )
34+ )
35+ }
36+
37+ it should " serialize an inner case object when visibility settings set" in {
38+ val mapper = newBuilder
39+ .visibility(PropertyAccessor .FIELD , JsonAutoDetect .Visibility .ANY )
40+ .visibility(PropertyAccessor .GETTER , JsonAutoDetect .Visibility .NONE )
41+ .build()
42+ mapper.writeValueAsString(Foo ) shouldEqual """ {"field":"bar"}"""
43+ }
2044}
0 commit comments