33
44import cz .habarta .typescript .generator .parser .*;
55import com .fasterxml .jackson .annotation .*;
6+ import com .fasterxml .jackson .core .JsonProcessingException ;
7+ import com .fasterxml .jackson .databind .ObjectMapper ;
68import org .junit .Assert ;
79import org .junit .Test ;
810
@@ -45,19 +47,21 @@ public void testConflictingJsonTypeInfoProperty() {
4547 public void testTaggedUnion () {
4648 final Jackson2Parser jacksonParser = getJackson2Parser ();
4749 final Model model = jacksonParser .parseModel (SubTypeDiscriminatedByName1 .class );
48- Assert .assertEquals (4 , model .getBeans ().size ());
50+ Assert .assertEquals (5 , model .getBeans ().size ());
4951 final BeanModel bean0 = model .getBean (ParentWithNameDiscriminant .class );
5052 final BeanModel bean1 = model .getBean (SubTypeDiscriminatedByName1 .class );
5153 final BeanModel bean2 = model .getBean (SubTypeDiscriminatedByName2 .class );
5254 final BeanModel bean3 = model .getBean (SubTypeDiscriminatedByName3 .class );
53- Assert .assertEquals (3 , bean0 .getTaggedUnionClasses ().size ());
55+ final BeanModel bean4 = model .getBean (SubTypeDiscriminatedByName4 .class );
56+ Assert .assertEquals (4 , bean0 .getTaggedUnionClasses ().size ());
5457 Assert .assertNull (bean1 .getTaggedUnionClasses ());
5558 Assert .assertNull (bean2 .getTaggedUnionClasses ());
5659 Assert .assertNull (bean3 .getTaggedUnionClasses ());
5760 Assert .assertEquals ("kind" , bean0 .getDiscriminantProperty ());
5861 Assert .assertEquals ("explicit-name1" , bean1 .getDiscriminantLiteral ());
5962 Assert .assertEquals ("SubType2" , bean2 .getDiscriminantLiteral ());
6063 Assert .assertEquals ("Jackson2ParserTest$SubTypeDiscriminatedByName3" , bean3 .getDiscriminantLiteral ());
64+ Assert .assertEquals ("Jackson2ParserTest$SubTypeDiscriminatedByName4" , bean4 .getDiscriminantLiteral ());
6165 }
6266
6367 static Jackson2Parser getJackson2Parser () {
@@ -79,20 +83,30 @@ public class InheritedClass {
7983
8084 @ JsonTypeInfo (use = JsonTypeInfo .Id .NAME , include = JsonTypeInfo .As .PROPERTY , property = "kind" )
8185 @ JsonSubTypes ({
82- @ JsonSubTypes .Type (value = SubTypeDiscriminatedByName1 .class ),
86+ @ JsonSubTypes .Type (value = SubTypeDiscriminatedByName1 .class , name = "SubType1" ), // value from @JsonTypeName is used
8387 @ JsonSubTypes .Type (value = SubTypeDiscriminatedByName2 .class , name = "SubType2" ),
8488 @ JsonSubTypes .Type (value = SubTypeDiscriminatedByName3 .class ),
89+ @ JsonSubTypes .Type (value = SubTypeDiscriminatedByName4 .class ),
8590 })
8691 private static interface ParentWithNameDiscriminant {
8792 }
8893
8994 @ JsonTypeName ("explicit-name1" )
9095 private static class SubTypeDiscriminatedByName1 implements ParentWithNameDiscriminant {
9196 }
92- @ JsonTypeName (/* Default should be the simplename of the class */ )
9397 private static class SubTypeDiscriminatedByName2 implements ParentWithNameDiscriminant {
9498 }
99+ @ JsonTypeName (/* Default should be the simplename of the class */ )
95100 private static class SubTypeDiscriminatedByName3 implements ParentWithNameDiscriminant {
96101 }
102+ private static class SubTypeDiscriminatedByName4 implements ParentWithNameDiscriminant {
103+ }
104+
105+ public static void main (String [] args ) throws JsonProcessingException {
106+ System .out .println (new ObjectMapper ().writeValueAsString (new SubTypeDiscriminatedByName1 ()));
107+ System .out .println (new ObjectMapper ().writeValueAsString (new SubTypeDiscriminatedByName2 ()));
108+ System .out .println (new ObjectMapper ().writeValueAsString (new SubTypeDiscriminatedByName3 ()));
109+ System .out .println (new ObjectMapper ().writeValueAsString (new SubTypeDiscriminatedByName4 ()));
110+ }
97111
98112}
0 commit comments