Skip to content

Commit cad5ce4

Browse files
committed
Add a visibility test per FasterXML#224.
1 parent 8af5236 commit cad5ce4

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package com.fasterxml.jackson.module.scala
2+
3+
import com.fasterxml.jackson.annotation.{JsonProperty, JsonAutoDetect}
4+
import com.fasterxml.jackson.module.scala.ser.SerializerTest
5+
import org.junit.runner.RunWith
6+
import org.scalatest.junit.JUnitRunner
7+
8+
object VisibilityTest {
9+
@JsonAutoDetect(creatorVisibility = JsonAutoDetect.Visibility.NONE,
10+
fieldVisibility = JsonAutoDetect.Visibility.NONE,
11+
getterVisibility = JsonAutoDetect.Visibility.NONE,
12+
isGetterVisibility = JsonAutoDetect.Visibility.NONE,
13+
setterVisibility = JsonAutoDetect.Visibility.NONE)
14+
trait NotVisible
15+
16+
abstract class AFieldVisibility extends NotVisible {
17+
val foo = "not visible"
18+
@JsonProperty
19+
val bar = "visible"
20+
}
21+
22+
class FieldVisibility extends AFieldVisibility {
23+
val baz = "not visible"
24+
@JsonProperty
25+
val zip = "visible"
26+
}
27+
28+
abstract class AMethodVisibility extends NotVisible {
29+
def foo = "not visible"
30+
@JsonProperty
31+
def bar = "visible"
32+
}
33+
34+
class MethodVisibility extends AFieldVisibility {
35+
def baz = "not visible"
36+
@JsonProperty
37+
def zip = "visible"
38+
}
39+
}
40+
41+
@RunWith(classOf[JUnitRunner])
42+
class VisibilityTest extends SerializerTest {
43+
import VisibilityTest._
44+
45+
lazy val module = DefaultScalaModule
46+
47+
"An ObjectMapper" should "respect field visibility" in {
48+
val p = new FieldVisibility()
49+
serialize(p) should be ("""{"bar":"visible","zip":"visible"}""")
50+
}
51+
52+
"An ObjectMapper" should "respect method visibility" in {
53+
val p = new MethodVisibility()
54+
serialize(p) should be ("""{"bar":"visible","zip":"visible"}""")
55+
}
56+
}

0 commit comments

Comments
 (0)