|
55 | 55 | import java.util.List; |
56 | 56 | import java.util.Map; |
57 | 57 | import java.util.Optional; |
| 58 | +import java.util.OptionalDouble; |
| 59 | +import java.util.OptionalInt; |
| 60 | +import java.util.OptionalLong; |
58 | 61 | import java.util.Random; |
59 | 62 | import java.util.UUID; |
60 | 63 | import java.util.concurrent.atomic.AtomicLong; |
@@ -299,6 +302,9 @@ static class WellKnownClasses { |
299 | 302 | URI uri = URI.create("https://www.datadoghq.com"); |
300 | 303 | Optional<Date> maybeDate = Optional.of(new Date()); |
301 | 304 | Optional<Object> empty = Optional.empty(); |
| 305 | + OptionalInt maybeInt = OptionalInt.of(42); |
| 306 | + OptionalDouble maybeDouble = OptionalDouble.of(3.14); |
| 307 | + OptionalLong maybeLong = OptionalLong.of(84); |
302 | 308 | Exception ex = new IllegalArgumentException("invalid arg"); |
303 | 309 | StackTraceElement element = new StackTraceElement("Foo", "bar", "foo.java", 42); |
304 | 310 | } |
@@ -335,17 +341,35 @@ public void wellKnownClasses() throws IOException { |
335 | 341 | assertPrimitiveValue(objLocalFields, "atomicLong", AtomicLong.class.getTypeName(), "123"); |
336 | 342 | assertPrimitiveValue( |
337 | 343 | objLocalFields, "uri", URI.class.getTypeName(), "https://www.datadoghq.com"); |
| 344 | + // maybeDate |
338 | 345 | Map<String, Object> maybeDate = (Map<String, Object>) objLocalFields.get("maybeDate"); |
339 | 346 | assertComplexClass(maybeDate, Optional.class.getTypeName()); |
340 | | - Map<String, Object> maybeUiidFields = (Map<String, Object>) maybeDate.get(FIELDS); |
341 | | - Map<String, Object> value = (Map<String, Object>) maybeUiidFields.get("value"); |
| 347 | + Map<String, Object> maybeDateFields = (Map<String, Object>) maybeDate.get(FIELDS); |
| 348 | + Map<String, Object> value = (Map<String, Object>) maybeDateFields.get("value"); |
342 | 349 | assertComplexClass(value, Date.class.getTypeName()); |
| 350 | + // empty |
343 | 351 | Map<String, Object> empty = (Map<String, Object>) objLocalFields.get("empty"); |
344 | 352 | assertComplexClass(empty, Optional.class.getTypeName()); |
345 | 353 | Map<String, Object> emptyFields = (Map<String, Object>) empty.get(FIELDS); |
346 | 354 | value = (Map<String, Object>) emptyFields.get("value"); |
347 | 355 | assertEquals(Object.class.getTypeName(), value.get(TYPE)); |
348 | 356 | assertTrue((Boolean) value.get(IS_NULL)); |
| 357 | + // maybeInt |
| 358 | + Map<String, Object> maybeInt = (Map<String, Object>) objLocalFields.get("maybeInt"); |
| 359 | + assertComplexClass(maybeInt, OptionalInt.class.getTypeName()); |
| 360 | + Map<String, Object> maybeIntFields = (Map<String, Object>) maybeInt.get(FIELDS); |
| 361 | + assertPrimitiveValue(maybeIntFields, "value", "int", "42"); |
| 362 | + // maybeDouble |
| 363 | + Map<String, Object> maybeDouble = (Map<String, Object>) objLocalFields.get("maybeDouble"); |
| 364 | + assertComplexClass(maybeDouble, OptionalDouble.class.getTypeName()); |
| 365 | + Map<String, Object> maybeDoubleFields = (Map<String, Object>) maybeDouble.get(FIELDS); |
| 366 | + assertPrimitiveValue(maybeDoubleFields, "value", "double", "3.14"); |
| 367 | + // maybeLong |
| 368 | + Map<String, Object> maybeLong = (Map<String, Object>) objLocalFields.get("maybeLong"); |
| 369 | + assertComplexClass(maybeLong, OptionalLong.class.getTypeName()); |
| 370 | + Map<String, Object> maybeLongFields = (Map<String, Object>) maybeLong.get(FIELDS); |
| 371 | + assertPrimitiveValue(maybeLongFields, "value", "long", "84"); |
| 372 | + // ex |
349 | 373 | Map<String, Object> ex = (Map<String, Object>) objLocalFields.get("ex"); |
350 | 374 | assertComplexClass(ex, IllegalArgumentException.class.getTypeName()); |
351 | 375 | Map<String, Object> exFields = (Map<String, Object>) ex.get(FIELDS); |
|
0 commit comments