Skip to content

Commit 963f34d

Browse files
committed
test improvements
1 parent 4dff70b commit 963f34d

File tree

1 file changed

+28
-18
lines changed

1 file changed

+28
-18
lines changed

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

+28-18
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.fasterxml.jackson.databind;
22

3+
import com.fasterxml.jackson.annotation.JsonCreator;
34
import com.fasterxml.jackson.annotation.JsonIgnore;
45
import com.fasterxml.jackson.annotation.JsonProperty;
56

@@ -12,26 +13,29 @@
1213

1314
public class RecordTest extends BaseMapTest
1415
{
15-
record SimpleRecord(int id, String name) {
16-
}
16+
record SimpleRecord(int id, String name) { }
1717

18-
record RecordOfRecord(SimpleRecord record) {
19-
}
18+
record RecordOfRecord(SimpleRecord record) { }
2019

21-
record RecordWithConstructor(int id, String name) {
22-
public RecordWithConstructor(int id) {
23-
this(id, "name");
20+
record RecordWithCanonicalCtorOverride(int id, String name) {
21+
public RecordWithCanonicalCtorOverride(int id, String name) {
22+
this.id = id;
23+
this.name = "name";
2424
}
2525
}
2626

27-
record JsonIgnoreRecord(int id, @JsonIgnore String name) {
27+
record RecordWithAltCtor(int id, String name) {
28+
@JsonCreator(mode = JsonCreator.Mode.PROPERTIES)
29+
public RecordWithAltCtor(@JsonProperty("id") int id) {
30+
this(id, "name2");
31+
}
2832
}
2933

30-
record JsonPropertyRenameRecord(int id, @JsonProperty("rename")String name) {
31-
}
34+
record JsonIgnoreRecord(int id, @JsonIgnore String name) { }
3235

33-
record EmptyRecord() {
34-
}
36+
record JsonPropertyRenameRecord(int id, @JsonProperty("rename")String name) { }
37+
38+
record EmptyRecord() { }
3539

3640
private final ObjectMapper MAPPER = newJsonMapper();
3741

@@ -46,7 +50,6 @@ public void testClassUtil() {
4650

4751
assertTrue(ClassUtil.isRecordType(SimpleRecord.class));
4852
assertTrue(ClassUtil.isRecordType(RecordOfRecord.class));
49-
assertTrue(ClassUtil.isRecordType(RecordWithConstructor.class));
5053
assertTrue(ClassUtil.isRecordType(JsonIgnoreRecord.class));
5154
assertTrue(ClassUtil.isRecordType(JsonPropertyRenameRecord.class));
5255
}
@@ -56,7 +59,6 @@ public void testRecordJavaType() {
5659

5760
assertTrue(MAPPER.constructType(SimpleRecord.class).isRecordType());
5861
assertTrue(MAPPER.constructType(RecordOfRecord.class).isRecordType());
59-
assertTrue(MAPPER.constructType(RecordWithConstructor.class).isRecordType());
6062
assertTrue(MAPPER.constructType(JsonIgnoreRecord.class).isRecordType());
6163
assertTrue(MAPPER.constructType(JsonPropertyRenameRecord.class).isRecordType());
6264
}
@@ -135,10 +137,18 @@ public void testSerializeJsonIgnoreRecord() throws Exception {
135137
assertEquals("{\"id\":123}", json);
136138
}
137139

138-
public void testDeserializeRecordWithConstructor() throws Exception {
139-
RecordWithConstructor value = MAPPER.readValue("{\"id\":123,\"name\":\"Bob\"}",
140-
RecordWithConstructor.class);
141-
assertEquals(new RecordWithConstructor(123, "Bob"), value);
140+
public void testDeserializeWithCanonicalCtorOverride() throws Exception {
141+
RecordWithCanonicalCtorOverride value = MAPPER.readValue("{\"id\":123,\"name\":\"Bob\"}",
142+
RecordWithCanonicalCtorOverride.class);
143+
assertEquals(123, value.id());
144+
assertEquals("name", value.name());
145+
}
146+
147+
public void testDeserializeWithAltCtor() throws Exception {
148+
RecordWithAltCtor value = MAPPER.readValue("{\"id\":2812}",
149+
RecordWithAltCtor.class);
150+
assertEquals(2812, value.id());
151+
assertEquals("name2", value.name());
142152
}
143153

144154
public void testSerializeJsonRenameRecord() throws Exception {

0 commit comments

Comments
 (0)