|
14 | 14 | import static org.hamcrest.Matchers.is;
|
15 | 15 | import static org.hamcrest.Matchers.not;
|
16 | 16 | import static org.hamcrest.Matchers.nullValue;
|
| 17 | +import static org.junit.jupiter.api.Assertions.assertEquals; |
| 18 | +import static org.junit.jupiter.api.Assertions.assertNull; |
17 | 19 |
|
18 | 20 | import java.io.ByteArrayOutputStream;
|
19 | 21 | import java.math.BigDecimal;
|
@@ -185,6 +187,33 @@ public void nullAndMissingMapMembersReturnsNull() {
|
185 | 187 | assertThat(document.getMember("d"), nullValue());
|
186 | 188 | }
|
187 | 189 |
|
| 190 | + @Test |
| 191 | + public void nullMapMemberRoundtrip() { |
| 192 | + var codec = JsonCodec.builder().build(); |
| 193 | + var doc = codec.createDeserializer("{\"a\":null}".getBytes(StandardCharsets.UTF_8)).readDocument(); |
| 194 | + var roundtrip = codec.createDeserializer(codec.serialize(doc)).readDocument(); |
| 195 | + |
| 196 | + assertEquals(doc, roundtrip); |
| 197 | + } |
| 198 | + |
| 199 | + @Test |
| 200 | + public void nullListMemberRoundtrip() { |
| 201 | + var codec = JsonCodec.builder().build(); |
| 202 | + var doc = codec.createDeserializer("[null]".getBytes(StandardCharsets.UTF_8)).readDocument(); |
| 203 | + var roundtrip = codec.createDeserializer(codec.serialize(doc)).readDocument(); |
| 204 | + |
| 205 | + assertEquals(doc, roundtrip); |
| 206 | + } |
| 207 | + |
| 208 | + @Test |
| 209 | + public void nullDocument() { |
| 210 | + var codec = JsonCodec.builder().build(); |
| 211 | + var de = codec.createDeserializer("null".getBytes(StandardCharsets.UTF_8)); |
| 212 | + |
| 213 | + var document = de.readDocument(); |
| 214 | + assertNull(document); |
| 215 | + } |
| 216 | + |
188 | 217 | @ParameterizedTest
|
189 | 218 | @MethodSource("failToConvertSource")
|
190 | 219 | public void failToConvert(String json, Consumer<Document> consumer) {
|
|
0 commit comments