1
1
package com .fasterxml .jackson .module .scala .deser
2
2
3
- import com .fasterxml .jackson .core .`type` .TypeReference
4
3
import com .fasterxml .jackson .module .scala .OuterWeekday .InnerWeekday
4
+ import com .fasterxml .jackson .module .scala .ser .EnumerationSerializerTest .{AnnotationHolder , AnnotationOptionHolder , WeekdayType }
5
5
import com .fasterxml .jackson .module .scala .{DefaultScalaModule , JsonScalaEnumeration , Weekday }
6
6
7
7
import scala .beans .BeanProperty
@@ -10,9 +10,6 @@ class EnumContainer {
10
10
var day : Weekday .Value = Weekday .Fri
11
11
}
12
12
13
- class WeekdayType extends TypeReference [Weekday .type ]
14
- case class AnnotatedEnumHolder (@ JsonScalaEnumeration (classOf [WeekdayType ]) weekday : Weekday .Weekday )
15
-
16
13
class EnumMapHolder {
17
14
@ JsonScalaEnumeration (classOf [WeekdayType ])
18
15
var weekdayMap : Map [Weekday .Value , String ] = Map .empty
@@ -28,9 +25,8 @@ object EnumerationDeserializerTest {
28
25
class HolderImpl extends BeanPropertyEnumMapHolder
29
26
}
30
27
31
- // see EnumerationScala2DeserializerTest for tests that only in Scala2
28
+ // see Json for tests that only in Scala2
32
29
class EnumerationDeserializerTest extends DeserializerTest {
33
- import com .fasterxml .jackson .module .scala .deser .EnumerationDeserializerTest ._
34
30
35
31
lazy val module : DefaultScalaModule .type = DefaultScalaModule
36
32
@@ -46,11 +42,16 @@ class EnumerationDeserializerTest extends DeserializerTest {
46
42
result.day should be (expectedDay)
47
43
}
48
44
49
- it should " deserialize an annotated Enumeration value" in {
50
- val result = deserialize(annotatedFridayJson, classOf [AnnotatedEnumHolder ])
45
+ it should " deserialize an annotated Enumeration value (JsonScalaEnumeration) " in {
46
+ val result = deserialize(annotatedFridayJson, classOf [AnnotationHolder ])
51
47
result.weekday should be (Weekday .Fri )
52
48
}
53
49
50
+ it should " deserialize an annotated optional Enumeration value (JsonScalaEnumeration)" in {
51
+ val result = deserialize(annotatedFridayJson, classOf [AnnotationOptionHolder ])
52
+ result.weekday shouldBe Some (Weekday .Fri )
53
+ }
54
+
54
55
val fridayEnumJson = """ {"day": {"enumClass":"com.fasterxml.jackson.module.scala.Weekday","value":"Fri"}}"""
55
56
56
57
val fridayInnerEnumJson = """ {"day": {"enumClass":"com.fasterxml.jackson.module.scala.OuterWeekday$InnerWeekday","value":"Fri"}}"""
0 commit comments