diff --git a/src/test/scala/com/fasterxml/jackson/module/scala/ser/TransientFieldTest.scala b/src/test/scala/com/fasterxml/jackson/module/scala/ser/TransientFieldTest.scala new file mode 100644 index 000000000..37565b509 --- /dev/null +++ b/src/test/scala/com/fasterxml/jackson/module/scala/ser/TransientFieldTest.scala @@ -0,0 +1,32 @@ +package com.fasterxml.jackson.module.scala.ser + +import com.fasterxml.jackson.annotation.JsonPropertyOrder +import com.fasterxml.jackson.databind.MapperFeature +import com.fasterxml.jackson.module.scala.DefaultScalaModule +import org.junit.runner.RunWith +import org.scalatest.junit.JUnitRunner + +object TransientFieldTest { + @JsonPropertyOrder(Array("x")) + class ClassyTransient { + @transient + val value = 3 + def getValue = value + def getX = 42 + } +} + +@RunWith(classOf[JUnitRunner]) +class TransientFieldTest extends SerializerTest { + import TransientFieldTest._ + + val module = DefaultScalaModule + + "DefaultScalaModule" should "normally ignore @transient annotations" in { + serialize(new ClassyTransient) shouldBe """{"x":42,"value":3}""" + } + + it should "respect @transient annotation when feature enabled" in { + serialize(new ClassyTransient, newMapper.enable(MapperFeature.PROPAGATE_TRANSIENT_MARKER)) shouldBe """{"x":42}""" + } +}