Skip to content

Commit 37fef88

Browse files
committed
[java][resttemplate] Add test to ensure additional properties work
1 parent 620b368 commit 37fef88

File tree

2 files changed

+67
-0
lines changed

2 files changed

+67
-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 resttemplate test files
19+
- filename: "samples/client/petstore/java/resttemplate/src/test/java/org/openapitools/client/JacksonTest.java"
20+
sha256: 346af62abe32357474f0da870f75fbc1b765b0efe64eee40ddfc0f0d6fd43a97
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
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("value")
31+
.putAdditionalProperty("someString", "someValue")
32+
.putAdditionalProperty("someNumber", 1.23)
33+
.putAdditionalProperty("someBoolean", true);
34+
35+
// When
36+
String string = mapper.writeValueAsString(model);
37+
38+
// Then
39+
String expectedString = "{\"someProperty\":\"value\",\"someBoolean\":true,\"someNumber\":1.23,\"someString\":\"someValue\"}";
40+
assertEquals(expectedString, string);
41+
}
42+
43+
@Test
44+
void testDeserializeAdditionalProperties() throws JsonProcessingException {
45+
// Given
46+
String string = "{\"someProperty\":\"value\",\"someBoolean\":true,\"someNumber\":1.23,\"someString\":\"someValue\"}";
47+
48+
// When
49+
TestInlineFreeformAdditionalPropertiesRequest model = mapper.readValue(
50+
string,
51+
TestInlineFreeformAdditionalPropertiesRequest.class
52+
);
53+
54+
// Then
55+
TestInlineFreeformAdditionalPropertiesRequest expectedModel = new TestInlineFreeformAdditionalPropertiesRequest("value")
56+
.putAdditionalProperty("someString", "someValue")
57+
.putAdditionalProperty("someNumber", 1.23)
58+
.putAdditionalProperty("someBoolean", true);
59+
assertEquals(expectedModel, model);
60+
61+
TestInlineFreeformAdditionalPropertiesRequest invalidModel = new TestInlineFreeformAdditionalPropertiesRequest("value");
62+
assertNotEquals(invalidModel, model);
63+
}
64+
}

0 commit comments

Comments
 (0)