|
1 | 1 | package com.fasterxml.jackson.databind.node;
|
2 | 2 |
|
3 | 3 | import java.util.Comparator;
|
| 4 | +import java.util.Optional; |
4 | 5 |
|
5 | 6 | import org.junit.jupiter.api.Test;
|
6 | 7 |
|
@@ -215,4 +216,37 @@ public void testArrayWithDefaultTyping() throws Exception
|
215 | 216 | assertEquals(1, obj.size());
|
216 | 217 | assertEquals(2, obj.path("a").asInt());
|
217 | 218 | }
|
| 219 | + |
| 220 | + // [databind#4867] |
| 221 | + @Test |
| 222 | + public void testAsOptional() { |
| 223 | + // Test with MissingNode |
| 224 | + JsonNode missingNode = MissingNode.getInstance(); |
| 225 | + Optional<JsonNode> missingOptional = missingNode.asOptional(); |
| 226 | + assertFalse(missingOptional.isPresent()); |
| 227 | + |
| 228 | + // Test with ObjectNode |
| 229 | + ObjectNode objectNode = MAPPER.createObjectNode(); |
| 230 | + Optional<JsonNode> objectOptional = objectNode.asOptional(); |
| 231 | + assertTrue(objectOptional.isPresent()); |
| 232 | + assertEquals(objectNode, objectOptional.get()); |
| 233 | + |
| 234 | + // Test with ArrayNode |
| 235 | + ArrayNode arrayNode = MAPPER.createArrayNode(); |
| 236 | + Optional<JsonNode> arrayOptional = arrayNode.asOptional(); |
| 237 | + assertTrue(arrayOptional.isPresent()); |
| 238 | + assertEquals(arrayNode, arrayOptional.get()); |
| 239 | + |
| 240 | + // Test with TextNode |
| 241 | + TextNode textNode = TextNode.valueOf("text"); |
| 242 | + Optional<JsonNode> textOptional = textNode.asOptional(); |
| 243 | + assertTrue(textOptional.isPresent()); |
| 244 | + assertEquals(textNode, textOptional.get()); |
| 245 | + |
| 246 | + // Test with NullNode |
| 247 | + NullNode nullNode = NullNode.getInstance(); |
| 248 | + Optional<JsonNode> nullOptional = nullNode.asOptional(); |
| 249 | + assertTrue(nullOptional.isPresent()); |
| 250 | + assertEquals(nullNode, nullOptional.get()); |
| 251 | + } |
218 | 252 | }
|
0 commit comments