Skip to content

Commit 6812427

Browse files
committed
add deser tests for empty lists
1 parent c8d48b8 commit 6812427

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

src/test/scala/com/fasterxml/jackson/module/scala/deser/CaseClassDeserializerTest.scala

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package com.fasterxml.jackson
22
package module.scala
33
package deser
44

5-
import com.fasterxml.jackson.annotation.JsonProperty
5+
import com.fasterxml.jackson.annotation.{JsonProperty, JsonSetter, Nulls}
66
import com.fasterxml.jackson.databind.annotation.JsonDeserialize
77
import com.fasterxml.jackson.databind.{DeserializationFeature, JsonMappingException, ObjectMapper, ObjectReader, PropertyNamingStrategy}
88
import com.fasterxml.jackson.module.scala.ser.{ClassWithOnlyUnitField, ClassWithUnitField}
@@ -68,6 +68,9 @@ object CaseClassDeserializerTest {
6868
class NestedB(id: Int) {
6969
def x = id
7070
}
71+
72+
case class ListHolder[T](list: List[T])
73+
case class AnnotatedListHolder[T](@JsonSetter(nulls = Nulls.AS_EMPTY)list: List[T])
7174
}
7275

7376
class CaseClassDeserializerTest extends DeserializerTest {
@@ -193,4 +196,16 @@ class CaseClassDeserializerTest extends DeserializerTest {
193196
val result = deserialize(input, classOf[ClassWithOnlyUnitField])
194197
result shouldEqual ClassWithOnlyUnitField(())
195198
}
199+
200+
it should "support deserializing null input for list as empty list" ignore {
201+
val input = """{}"""
202+
val result = deserialize(input, classOf[ListHolder[String]])
203+
result.list shouldBe null // ideally should be empty list, Scala users expect no nulls
204+
}
205+
206+
it should "support deserializing null input for list as empty list (JsonSetter annotation)" in {
207+
val input = """{}"""
208+
val result = deserialize(input, classOf[AnnotatedListHolder[String]])
209+
result.list shouldBe List.empty
210+
}
196211
}

0 commit comments

Comments
 (0)