2
2
3
3
import com .fasterxml .jackson .annotation .JsonSubTypes ;
4
4
import com .fasterxml .jackson .annotation .JsonTypeInfo ;
5
-
5
+ import com . fasterxml . jackson . annotation . JsonTypeName ;
6
6
import com .fasterxml .jackson .databind .*;
7
7
8
8
public class TestOverlappingTypeIdNames312 extends BaseMapTest
@@ -17,22 +17,43 @@ static abstract class Base312 { }
17
17
static class Impl312 extends Base312 {
18
18
public int x ;
19
19
}
20
-
20
+
21
+ @ JsonTypeInfo (use = JsonTypeInfo .Id .NAME , property = "type" )
22
+ @ JsonSubTypes ({
23
+ @ JsonSubTypes .Type (name = "a" , value = Impl312B1 .class ),
24
+ @ JsonSubTypes .Type (name = "a" , value = Impl312B2 .class )
25
+ })
26
+ static class Base312B {
27
+ public int value = 1 ;
28
+ }
29
+
30
+ static class Impl312B1 extends Base312B { }
31
+ static class Impl312B2 extends Base312B { }
32
+
33
+ final ObjectMapper MAPPER = objectMapper ();
34
+
21
35
public void testOverlappingNameDeser () throws Exception
22
36
{
23
- final ObjectMapper mapper = objectMapper ();
24
37
Base312 value ;
25
38
26
39
// Ensure both type ids are acceptable
27
40
28
- value = mapper .readValue (aposToQuotes ("{'type':'a','x':7}" ), Base312 .class );
41
+ value = MAPPER .readValue (aposToQuotes ("{'type':'a','x':7}" ), Base312 .class );
29
42
assertNotNull (value );
30
43
assertEquals (Impl312 .class , value .getClass ());
31
44
assertEquals (7 , ((Impl312 ) value ).x );
32
45
33
- value = mapper .readValue (aposToQuotes ("{'type':'b','x':3}" ), Base312 .class );
46
+ value = MAPPER .readValue (aposToQuotes ("{'type':'b','x':3}" ), Base312 .class );
34
47
assertNotNull (value );
35
48
assertEquals (Impl312 .class , value .getClass ());
36
49
assertEquals (3 , ((Impl312 ) value ).x );
37
50
}
51
+
52
+ public void testOverlappingNameSer () throws Exception
53
+ {
54
+ assertEquals (aposToQuotes ("{'type':'a','value':1}" ),
55
+ MAPPER .writeValueAsString (new Impl312B1 ()));
56
+ assertEquals (aposToQuotes ("{'type':'a','value':1}" ),
57
+ MAPPER .writeValueAsString (new Impl312B2 ()));
58
+ }
38
59
}
0 commit comments