Skip to content

Commit 099481b

Browse files
authored
Add tests to reproduce #5152 (Support iPhone properties) (#5166)
1 parent c3b7946 commit 099481b

File tree

1 file changed

+149
-0
lines changed

1 file changed

+149
-0
lines changed
Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
package com.fasterxml.jackson.databind.tofix;
2+
3+
import org.junit.jupiter.api.Test;
4+
5+
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
6+
import com.fasterxml.jackson.databind.*;
7+
import com.fasterxml.jackson.databind.testutil.DatabindTestUtil;
8+
import com.fasterxml.jackson.databind.testutil.failure.JacksonTestFailureExpected;
9+
10+
import static org.junit.jupiter.api.Assertions.*;
11+
12+
// [databind#5152] Support "iPhone" style capitalized properties
13+
public class IPhoneStyleProperty5152Test
14+
extends DatabindTestUtil
15+
{
16+
static class IPhoneBean {
17+
private String iPhone;
18+
19+
public String getIPhone() {
20+
return iPhone;
21+
}
22+
23+
public void setIPhone(String value) {
24+
iPhone = value;
25+
}
26+
}
27+
28+
static class RegularBean {
29+
private String phoneNumber;
30+
31+
public String getPhoneNumber() {
32+
return phoneNumber;
33+
}
34+
35+
public void setPhoneNumber(String value) {
36+
phoneNumber = value;
37+
}
38+
}
39+
40+
// [databind#2835]: "dLogHeader" property
41+
static class DLogHeaderBean {
42+
private String DLogHeader;
43+
44+
public String getDLogHeader() {
45+
return DLogHeader;
46+
}
47+
48+
public void setDLogHeader(String value) {
49+
DLogHeader = value;
50+
}
51+
}
52+
53+
static class KBSBroadCastingBean {
54+
private String KBSBroadCasting;
55+
56+
public String getKBSBroadCasting() {
57+
return KBSBroadCasting;
58+
}
59+
60+
public void setKBSBroadCasting(String value) {
61+
KBSBroadCasting = value;
62+
}
63+
}
64+
65+
static class PhoneBean {
66+
private String Phone;
67+
68+
public String getPhone() {
69+
return Phone;
70+
}
71+
public void setPhone(String value) {
72+
Phone = value;
73+
}
74+
}
75+
76+
private final ObjectMapper MAPPER = jsonMapperBuilder()
77+
.build();
78+
79+
@JacksonTestFailureExpected
80+
@Test
81+
public void testIPhoneStyleProperty() throws Exception {
82+
// Test with iPhone style property
83+
String json = "{\"iPhone\":\"iPhone 15\"}";
84+
IPhoneBean result = MAPPER.readValue(json, IPhoneBean.class);
85+
assertNotNull(result);
86+
assertEquals("iPhone 15", result.getIPhone());
87+
88+
// Test serialization
89+
String serialized = MAPPER.writeValueAsString(result);
90+
assertEquals("{\"iPhone\":\"iPhone 15\"}", serialized);
91+
}
92+
93+
@Test
94+
public void testRegularPojoProperty() throws Exception {
95+
// Test with regular POJO property
96+
String json = "{\"phoneNumber\":\"123-456-7890\"}";
97+
RegularBean result = MAPPER.readValue(json, RegularBean.class);
98+
assertNotNull(result);
99+
assertEquals("123-456-7890", result.getPhoneNumber());
100+
101+
// Test serialization
102+
String serialized = MAPPER.writeValueAsString(result);
103+
assertEquals("{\"phoneNumber\":\"123-456-7890\"}", serialized);
104+
}
105+
106+
// [databind#2835]: "dLogHeader" property
107+
@JacksonTestFailureExpected
108+
@Test
109+
public void testDLogHeaderStyleProperty() throws Exception {
110+
// Test with DLogHeader style property
111+
String json = "{\"dLogHeader\":\"Debug Log Header\"}";
112+
DLogHeaderBean result = MAPPER.readValue(json, DLogHeaderBean.class);
113+
assertNotNull(result);
114+
assertEquals("Debug Log Header", result.getDLogHeader());
115+
116+
// Test serialization
117+
String serialized = MAPPER.writeValueAsString(result);
118+
assertEquals("{\"dLogHeader\":\"Debug Log Header\"}", serialized);
119+
}
120+
121+
@JacksonTestFailureExpected
122+
@Test
123+
public void testKBSBroadCastingStyleProperty() throws Exception {
124+
// Test with KBSBroadCasting style property
125+
String json = "{\"KBSBroadCasting\":\"Korean Broadcasting System\"}";
126+
KBSBroadCastingBean result = MAPPER.readValue(json, KBSBroadCastingBean.class);
127+
assertNotNull(result);
128+
assertEquals("Korean Broadcasting System", result.getKBSBroadCasting());
129+
130+
// Test serialization
131+
String serialized = MAPPER.writeValueAsString(result);
132+
assertEquals("{\"KBSBroadCasting\":\"Korean Broadcasting System\"}", serialized);
133+
}
134+
135+
@JacksonTestFailureExpected
136+
@Test
137+
public void testPhoneStyleProperty() throws Exception {
138+
// Test with Phone style property
139+
String json = "{\"Phone\":\"iPhone 15\"}";
140+
PhoneBean result = MAPPER.readValue(json, PhoneBean.class);
141+
assertNotNull(result);
142+
assertEquals("iPhone 15", result.getPhone());
143+
144+
// Test serialization
145+
String serialized = MAPPER.writeValueAsString(result);
146+
assertEquals("{\"Phone\":\"iPhone 15\"}", serialized);
147+
}
148+
149+
}

0 commit comments

Comments
 (0)