Skip to content

Commit 8061ede

Browse files
committed
Add a (failing) test for #17
1 parent 7ef16bb commit 8061ede

File tree

4 files changed

+56
-26
lines changed

4 files changed

+56
-26
lines changed

datatypes/src/main/java/com/fasterxml/jackson/datatype/jdk8/OptionalSerializer.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -339,8 +339,8 @@ protected JsonSerializer<?> findContentSerializer(SerializerProvider serializers
339339
if (property != null) {
340340
// First: if we have a property, may have property-annotation overrides
341341
AnnotatedMember m = property.getMember();
342-
final AnnotationIntrospector intr = serializers.getAnnotationIntrospector();
343342
if (m != null) {
343+
final AnnotationIntrospector intr = serializers.getAnnotationIntrospector();
344344
Object serDef = intr.findContentSerializer(m);
345345
if (serDef != null) {
346346
return serializers.serializerInstance(m, serDef);

datatypes/src/test/java/com/fasterxml/jackson/datatype/jdk8/OptionalnclusionTest.java

+15
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,12 @@ public static <T> OptionalGenericData<T> construct(T data) {
3838
}
3939
}
4040

41+
/*
42+
/**********************************************************
43+
/* Test methods
44+
/**********************************************************
45+
*/
46+
4147
private final ObjectMapper MAPPER = mapperWithModule();
4248

4349
public void testSerOptNonEmpty() throws Exception
@@ -49,6 +55,15 @@ public void testSerOptNonEmpty() throws Exception
4955
assertEquals("{}", value);
5056
}
5157

58+
public void testSerOptNonDefault() throws Exception
59+
{
60+
OptionalData data = new OptionalData();
61+
data.myString = null;
62+
String value = mapperWithModule().setSerializationInclusion(
63+
JsonInclude.Include.NON_DEFAULT).writeValueAsString(data);
64+
assertEquals("{}", value);
65+
}
66+
5267
public void testSerOptNonAbsent() throws Exception
5368
{
5469
OptionalData data = new OptionalData();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package com.fasterxml.jackson.failing;
2+
3+
import java.util.Date;
4+
import java.util.Optional;
5+
6+
import com.fasterxml.jackson.annotation.JsonFormat;
7+
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
8+
import com.fasterxml.jackson.databind.ObjectMapper;
9+
import com.fasterxml.jackson.datatype.jdk8.ModuleTestBase;
10+
11+
public class ContextualOptional17Test extends ModuleTestBase
12+
{
13+
// [datatypes-java8#17]
14+
@JsonPropertyOrder({ "date1", "date2" })
15+
static class ContextualOptionals
16+
{
17+
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
18+
public Optional<Date> date1;
19+
20+
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM")
21+
public Optional<Date> date2;
22+
}
23+
24+
/*
25+
/**********************************************************
26+
/* Test methods
27+
/**********************************************************
28+
*/
29+
30+
private final ObjectMapper MAPPER = mapperWithModule();
31+
32+
public void testContextualOptionals() throws Exception
33+
{
34+
ContextualOptionals input = new ContextualOptionals();
35+
input.date1 = Optional.ofNullable(new Date(0L));
36+
input.date2 = Optional.ofNullable(new Date(0L));
37+
assertEquals(aposToQuotes("{'date1':'1970-01-01','date2':'1970-01'"),
38+
MAPPER.writeValueAsString(input));
39+
}
40+
}

datatypes/src/test/java/com/fasterxml/jackson/failing/OptionalnclusionTest.java

-25
This file was deleted.

0 commit comments

Comments
 (0)