Skip to content

Commit eee08ff

Browse files
committed
[java][feign] Add test to ensure additional properties work
1 parent eeb46b2 commit eee08ff

File tree

2 files changed

+70
-0
lines changed

2 files changed

+70
-0
lines changed

bin/utils/test_file_list.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,3 +15,6 @@
1515
sha256: 8b1b8f2a2ad00ccb090873a94a5f73e328b98317d2ec715f53bd7a1accb2a023
1616
- filename: "samples/client/petstore/java/okhttp-gson/src/test/java/org/openapitools/client/model/PetTest.java"
1717
sha256: a1f8a70bf7b0c382a8def5bacf7b1fb189e687fabb40235aa799001e0597f545
18+
# java feign test files
19+
- filename: "samples/client/petstore/java/feign/src/test/java/org/openapitools/client/JacksonTest.java"
20+
sha256: 537158f7cb5a372c63acf0ade4a221d13a145892e4156f39c71afae3a223bf5f
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package org.openapitools.client;
2+
3+
import com.fasterxml.jackson.core.JsonProcessingException;
4+
import com.fasterxml.jackson.databind.MapperFeature;
5+
import com.fasterxml.jackson.databind.ObjectMapper;
6+
import com.fasterxml.jackson.databind.SerializationFeature;
7+
import com.fasterxml.jackson.databind.json.JsonMapper;
8+
import org.junit.jupiter.api.BeforeEach;
9+
import org.junit.jupiter.api.Test;
10+
import org.openapitools.client.model.TestInlineFreeformAdditionalPropertiesRequest;
11+
12+
import static org.junit.jupiter.api.Assertions.*;
13+
14+
class JacksonTest {
15+
16+
private ObjectMapper mapper;
17+
18+
@BeforeEach
19+
void setUp() {
20+
mapper = JsonMapper.builder()
21+
// For determinist serialization results
22+
.enable(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY)
23+
.enable(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS)
24+
.build();
25+
}
26+
27+
@Test
28+
void testSerializeAdditionalProperties() throws JsonProcessingException {
29+
// Given
30+
TestInlineFreeformAdditionalPropertiesRequest model = new TestInlineFreeformAdditionalPropertiesRequest()
31+
.someProperty("value")
32+
.putAdditionalProperty("someString", "someValue")
33+
.putAdditionalProperty("someNumber", 1.23)
34+
.putAdditionalProperty("someBoolean", true);
35+
36+
// When
37+
String string = mapper.writeValueAsString(model);
38+
39+
// Then
40+
String expectedString = "{\"someProperty\":\"value\",\"someBoolean\":true,\"someNumber\":1.23,\"someString\":\"someValue\"}";
41+
assertEquals(expectedString, string);
42+
}
43+
44+
@Test
45+
void testDeserializeAdditionalProperties() throws JsonProcessingException {
46+
// Given
47+
String string = "{\"someProperty\":\"value\",\"someBoolean\":true,\"someNumber\":1.23,\"someString\":\"someValue\"}";
48+
49+
// When
50+
TestInlineFreeformAdditionalPropertiesRequest model = mapper.readValue(
51+
string,
52+
TestInlineFreeformAdditionalPropertiesRequest.class
53+
);
54+
55+
// Then
56+
TestInlineFreeformAdditionalPropertiesRequest expectedModel = new TestInlineFreeformAdditionalPropertiesRequest()
57+
.someProperty("value")
58+
.putAdditionalProperty("someString", "someValue")
59+
.putAdditionalProperty("someNumber", 1.23)
60+
.putAdditionalProperty("someBoolean", true);
61+
assertEquals(expectedModel, model);
62+
63+
TestInlineFreeformAdditionalPropertiesRequest invalidModel = new TestInlineFreeformAdditionalPropertiesRequest()
64+
.someProperty("value");
65+
assertNotEquals(invalidModel, model);
66+
}
67+
}

0 commit comments

Comments
 (0)