Skip to content

Commit 8a13a58

Browse files
author
eugenp
committed
intermediary json work
1 parent 3d7ca2e commit 8a13a58

File tree

3 files changed

+84
-9
lines changed

3 files changed

+84
-9
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package org.baeldung.jackson.dtos.withEnum;
2+
3+
import com.fasterxml.jackson.annotation.JsonValue;
4+
5+
6+
public enum TypeEnumWithValue {
7+
TYPE1(1, "Type A"), TYPE2(2, "Type 2");
8+
9+
private Integer id;
10+
11+
private String name;
12+
13+
private TypeEnumWithValue(final Integer id, final String name) {
14+
this.id = id;
15+
this.name = name;
16+
}
17+
18+
// API
19+
20+
public Integer getId() {
21+
return id;
22+
}
23+
24+
public void setId(final Integer id) {
25+
this.id = id;
26+
}
27+
28+
@JsonValue
29+
public String getName() {
30+
return name;
31+
}
32+
33+
public void setName(final String name) {
34+
this.name = name;
35+
}
36+
37+
}

jackson/src/test/java/org/baeldung/jackson/test/JacksonSerializationEnumsUnitTest.java

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,16 @@
1010
import org.baeldung.jackson.dtos.withEnum.TypeEnum;
1111
import org.baeldung.jackson.dtos.withEnum.TypeEnumSimple;
1212
import org.baeldung.jackson.dtos.withEnum.TypeEnumWithCustomSerializer;
13+
import org.baeldung.jackson.dtos.withEnum.TypeEnumWithValue;
14+
import org.junit.Ignore;
1315
import org.junit.Test;
1416

1517
import com.fasterxml.jackson.core.JsonParseException;
1618
import com.fasterxml.jackson.databind.ObjectMapper;
1719

1820
public class JacksonSerializationEnumsUnitTest {
1921

20-
// tests - enums
22+
// tests - simple enum
2123

2224
@Test
2325
public final void whenSerializingASimpleEnum_thenCorrect() throws JsonParseException, IOException {
@@ -28,28 +30,33 @@ public final void whenSerializingASimpleEnum_thenCorrect() throws JsonParseExcep
2830
assertThat(dtoAsString, containsString("TYPE1"));
2931
}
3032

33+
// tests - enum with main value
34+
3135
@Test
32-
public final void whenSerializingAnEnum_thenCorrect() throws JsonParseException, IOException {
36+
@Ignore("https://github.com/FasterXML/jackson-databind/issues/47")
37+
public final void whenSerializingAEnumWithValue_thenCorrect() throws JsonParseException, IOException {
3338
final ObjectMapper mapper = new ObjectMapper();
34-
final String dtoAsString = mapper.writeValueAsString(TypeEnum.TYPE1.name());
35-
39+
final String dtoAsString = mapper.writeValueAsString(TypeEnumWithValue.TYPE1.name());
3640
System.out.println(dtoAsString);
37-
assertThat(dtoAsString, containsString("\"name\":\"Type A\""));
41+
42+
assertThat(dtoAsString, containsString("Type A"));
3843
}
3944

45+
// tests - enum
46+
4047
@Test
41-
public final void whenSerializingEntityWithEnum_thenCorrect() throws JsonParseException, IOException {
48+
public final void whenSerializingAnEnum_thenCorrect() throws JsonParseException, IOException {
4249
final ObjectMapper mapper = new ObjectMapper();
43-
final String dtoAsString = mapper.writeValueAsString(new MyDtoWithEnum("a", 1, true, TypeEnum.TYPE1));
50+
final String dtoAsString = mapper.writeValueAsString(TypeEnum.TYPE1.name());
4451

4552
System.out.println(dtoAsString);
4653
assertThat(dtoAsString, containsString("\"name\":\"Type A\""));
4754
}
4855

4956
@Test
50-
public final void givenCustomSerializer_whenSerializingEntityWithEnum_thenCorrect() throws JsonParseException, IOException {
57+
public final void whenSerializingEntityWithEnum_thenCorrect() throws JsonParseException, IOException {
5158
final ObjectMapper mapper = new ObjectMapper();
52-
final String dtoAsString = mapper.writeValueAsString(new MyDtoWithEnumCustom("a", 1, true, TypeEnumWithCustomSerializer.TYPE1));
59+
final String dtoAsString = mapper.writeValueAsString(new MyDtoWithEnum("a", 1, true, TypeEnum.TYPE1));
5360

5461
System.out.println(dtoAsString);
5562
assertThat(dtoAsString, containsString("\"name\":\"Type A\""));
@@ -64,4 +71,15 @@ public final void whenSerializingArrayOfEnums_thenCorrect() throws JsonParseExce
6471
assertThat(json, containsString("\"name\":\"Type A\""));
6572
}
6673

74+
// tests - enum with custom serializer
75+
76+
@Test
77+
public final void givenCustomSerializer_whenSerializingEntityWithEnum_thenCorrect() throws JsonParseException, IOException {
78+
final ObjectMapper mapper = new ObjectMapper();
79+
final String dtoAsString = mapper.writeValueAsString(new MyDtoWithEnumCustom("a", 1, true, TypeEnumWithCustomSerializer.TYPE1));
80+
81+
System.out.println(dtoAsString);
82+
assertThat(dtoAsString, containsString("\"name\":\"Type A\""));
83+
}
84+
6785
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package org.baeldung.jackson.test;
2+
3+
import org.baeldung.jackson.sandbox.JacksonPrettyPrintUnitTest;
4+
import org.baeldung.jackson.sandbox.SandboxTest;
5+
import org.junit.runner.RunWith;
6+
import org.junit.runners.Suite;
7+
8+
@RunWith(Suite.class)
9+
@Suite.SuiteClasses({// @formatter:off
10+
JacksonCollectionDeserializationUnitTest.class
11+
,JacksonSerializationEnumsUnitTest.class
12+
,JacksonDeserializationUnitTest.class
13+
,JacksonDeserializationUnitTest.class
14+
,JacksonPrettyPrintUnitTest.class
15+
,JacksonSerializationIgnoreUnitTest.class
16+
,JacksonSerializationUnitTest.class
17+
,SandboxTest.class
18+
}) // @formatter:on
19+
public class UnitTestSuite {
20+
}

0 commit comments

Comments
 (0)