Skip to content

Commit 76e571d

Browse files
committed
Minor test refactoring (combine single-case class to bigger one)
1 parent c56e9be commit 76e571d

File tree

2 files changed

+45
-59
lines changed

2 files changed

+45
-59
lines changed

src/test/java/com/fasterxml/jackson/databind/deser/creators/EnumCreator4544Test.java

-56
This file was deleted.

src/test/java/com/fasterxml/jackson/databind/deser/creators/EnumCreatorTest.java

+45-3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import com.fasterxml.jackson.annotation.JsonCreator;
99
import com.fasterxml.jackson.annotation.JsonGetter;
10+
import com.fasterxml.jackson.annotation.JsonIgnore;
1011
import com.fasterxml.jackson.annotation.JsonProperty;
1112

1213
import com.fasterxml.jackson.core.type.TypeReference;
@@ -17,12 +18,11 @@
1718
import com.fasterxml.jackson.databind.exc.ValueInstantiationException;
1819
import com.fasterxml.jackson.databind.introspect.AnnotatedMethod;
1920
import com.fasterxml.jackson.databind.module.SimpleModule;
21+
import com.fasterxml.jackson.databind.testutil.DatabindTestUtil;
2022

2123
import static org.junit.jupiter.api.Assertions.*;
2224

23-
import static com.fasterxml.jackson.databind.testutil.DatabindTestUtil.*;
24-
25-
public class EnumCreatorTest
25+
public class EnumCreatorTest extends DatabindTestUtil
2626
{
2727
protected enum EnumWithCreator {
2828
A, B;
@@ -222,6 +222,35 @@ public static Enum3280 getByValue(@JsonProperty("b") String value) {
222222
}
223223
}
224224

225+
static class DataClass4544 {
226+
public DataEnum4544 data;
227+
}
228+
229+
public enum DataEnum4544
230+
{
231+
TEST(0);
232+
233+
private final int data;
234+
235+
DataEnum4544(int data) {
236+
this.data = data;
237+
}
238+
239+
// Important! Without ignoring accessor will find logical property
240+
// that matches Creator parameter... and assume properties-based
241+
@JsonIgnore
242+
public int getData() {
243+
return data;
244+
}
245+
246+
@JsonCreator
247+
public static DataEnum4544 of(@ImplicitName("data") int data) {
248+
return Arrays.stream(values())
249+
.filter(it -> it.getData() == data)
250+
.findAny().get();
251+
}
252+
}
253+
225254
/*
226255
/**********************************************************
227256
/* Test methods
@@ -394,4 +423,17 @@ public void testEnumsFromStringUnwrapped() throws Exception
394423
assertEquals(TestEnumFromString.class, ob.getClass());
395424
assertSame(TestEnumFromString.ENUM_A, ob);
396425
}
426+
427+
// for [databind#4544]
428+
@Test
429+
void testEnumsWithImplicitNames4544() throws Exception {
430+
final ObjectMapper mapper = jsonMapperBuilder()
431+
.annotationIntrospector(new ImplicitNameIntrospector())
432+
.build();
433+
434+
String json = a2q("{'data': 0}");
435+
DataClass4544 data = mapper.readValue(json, DataClass4544.class);
436+
437+
assertEquals(DataEnum4544.TEST, data.data);
438+
}
397439
}

0 commit comments

Comments
 (0)