Skip to content

Commit 13a7d61

Browse files
committed
Improve java14/record tests
1 parent 8caeea2 commit 13a7d61

File tree

3 files changed

+68
-58
lines changed

3 files changed

+68
-58
lines changed

src/test-jdk14/java/com/fasterxml/jackson/databind/RecordTest.java renamed to src/test-jdk14/java/com/fasterxml/jackson/databind/RecordBasicsTest.java

Lines changed: 1 addition & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -9,39 +9,12 @@
99
import java.util.LinkedHashMap;
1010
import java.util.Map;
1111

12-
public class RecordTest extends BaseMapTest
12+
public class RecordBasicsTest extends BaseMapTest
1313
{
1414
record SimpleRecord(int id, String name) { }
1515

1616
record RecordOfRecord(SimpleRecord record) { }
1717

18-
record RecordWithCanonicalCtorOverride(int id, String name) {
19-
public RecordWithCanonicalCtorOverride(int id, String name) {
20-
this.id = id;
21-
this.name = "name";
22-
}
23-
}
24-
25-
record RecordWithAltCtor(int id, String name) {
26-
@JsonCreator(mode = JsonCreator.Mode.PROPERTIES)
27-
public RecordWithAltCtor(@JsonProperty("id") int id) {
28-
this(id, "name2");
29-
}
30-
}
31-
32-
// [databind#2980]
33-
record RecordWithDelegation(String value) {
34-
@JsonCreator(mode = JsonCreator.Mode.PROPERTIES)
35-
public RecordWithDelegation(String value) {
36-
this.value = "del:"+value;
37-
}
38-
39-
@JsonValue()
40-
public String getValue() {
41-
return "val:"+value;
42-
}
43-
}
44-
4518
record RecordWithIgnore(int id, @JsonIgnore String name) { }
4619

4720
record RecordWithRename(int id, @JsonProperty("rename")String name) { }
@@ -134,35 +107,6 @@ public void testDeserializeSimpleRecord_DisableAnnotationIntrospector() throws E
134107
assertEquals(new SimpleRecord(123, "Bob"), value);
135108
}
136109

137-
/*
138-
/**********************************************************************
139-
/* Test methods, alternate constructors
140-
/**********************************************************************
141-
*/
142-
143-
public void testDeserializeWithCanonicalCtorOverride() throws Exception {
144-
RecordWithCanonicalCtorOverride value = MAPPER.readValue("{\"id\":123,\"name\":\"Bob\"}",
145-
RecordWithCanonicalCtorOverride.class);
146-
assertEquals(123, value.id());
147-
assertEquals("name", value.name());
148-
}
149-
150-
public void testDeserializeWithAltCtor() throws Exception {
151-
RecordWithAltCtor value = MAPPER.readValue("{\"id\":2812}",
152-
RecordWithAltCtor.class);
153-
assertEquals(2812, value.id());
154-
assertEquals("name2", value.name());
155-
}
156-
157-
// [databind#2980]
158-
public void testDeserializeWithDelegatingCtor() throws Exception {
159-
RecordWithDelegation value = MAPPER.readValue(q("foobar"),
160-
RecordWithDelegation.class);
161-
assertEquals("del:foobar", value.getValue());
162-
163-
assertEquals(q("val:del:foobar"), MAPPER.writeValueAsString(value));
164-
}
165-
166110
/*
167111
/**********************************************************************
168112
/* Test methods, ignorals, renames
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package com.fasterxml.jackson.databind;
2+
3+
import com.fasterxml.jackson.annotation.JsonCreator;
4+
import com.fasterxml.jackson.annotation.JsonProperty;
5+
import com.fasterxml.jackson.annotation.JsonValue;
6+
7+
public class RecordCreatorsTest extends BaseMapTest
8+
{
9+
record RecordWithCanonicalCtorOverride(int id, String name) {
10+
public RecordWithCanonicalCtorOverride(int id, String name) {
11+
this.id = id;
12+
this.name = "name";
13+
}
14+
}
15+
16+
record RecordWithAltCtor(int id, String name) {
17+
@JsonCreator(mode = JsonCreator.Mode.PROPERTIES)
18+
public RecordWithAltCtor(@JsonProperty("id") int id) {
19+
this(id, "name2");
20+
}
21+
}
22+
23+
// [databind#2980]
24+
record RecordWithDelegation(String value) {
25+
@JsonCreator(mode = JsonCreator.Mode.PROPERTIES)
26+
public RecordWithDelegation(String value) {
27+
this.value = "del:"+value;
28+
}
29+
30+
@JsonValue()
31+
public String getValue() {
32+
return "val:"+value;
33+
}
34+
}
35+
36+
private final ObjectMapper MAPPER = newJsonMapper();
37+
38+
/*
39+
/**********************************************************************
40+
/* Test methods, alternate constructors
41+
/**********************************************************************
42+
*/
43+
44+
public void testDeserializeWithCanonicalCtorOverride() throws Exception {
45+
RecordWithCanonicalCtorOverride value = MAPPER.readValue("{\"id\":123,\"name\":\"Bob\"}",
46+
RecordWithCanonicalCtorOverride.class);
47+
assertEquals(123, value.id());
48+
assertEquals("name", value.name());
49+
}
50+
51+
public void testDeserializeWithAltCtor() throws Exception {
52+
RecordWithAltCtor value = MAPPER.readValue("{\"id\":2812}",
53+
RecordWithAltCtor.class);
54+
assertEquals(2812, value.id());
55+
assertEquals("name2", value.name());
56+
}
57+
58+
// [databind#2980]
59+
public void testDeserializeWithDelegatingCtor() throws Exception {
60+
RecordWithDelegation value = MAPPER.readValue(q("foobar"),
61+
RecordWithDelegation.class);
62+
assertEquals("del:foobar", value.getValue());
63+
64+
assertEquals(q("val:del:foobar"), MAPPER.writeValueAsString(value));
65+
}
66+
}

src/test-jdk14/java/com/fasterxml/jackson/databind/RecordWithJsonSetter2974Test.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
import com.fasterxml.jackson.annotation.JsonSetter;
77
import com.fasterxml.jackson.annotation.Nulls;
8-
import com.fasterxml.jackson.databind.RecordTest.RecordWithRename;
8+
import com.fasterxml.jackson.databind.RecordBasicsTest.RecordWithRename;
99
import com.fasterxml.jackson.databind.exc.InvalidNullException;
1010

1111
public class RecordWithJsonSetter2974Test extends BaseMapTest

0 commit comments

Comments
 (0)