Skip to content

Commit d9ea0e1

Browse files
committed
Add failing tests for #708
1 parent d10ac69 commit d9ea0e1

File tree

2 files changed

+83
-6
lines changed

2 files changed

+83
-6
lines changed

src/test/java/com/fasterxml/jackson/core/filter/ParserFiltering700Test.java

+7-6
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,11 @@ public TokenFilter includeProperty(String name) {
1414
}
1515
return this;
1616
}
17-
18-
@Override
19-
protected boolean _includeScalar() {
20-
return true;
21-
}
2217
}
2318

2419
/*
2520
/**********************************************************************
26-
/* Test methods
21+
/* Test methods, [core#700]
2722
/**********************************************************************
2823
*/
2924

@@ -145,6 +140,12 @@ private void _testSkippingForSingleWithPath(boolean useNextName) throws Exceptio
145140
p.close();
146141
}
147142

143+
/*
144+
/**********************************************************************
145+
/* Helper methods
146+
/**********************************************************************
147+
*/
148+
148149
private JsonParser _createParser(TokenStreamFactory f, String json) throws Exception {
149150
return f.createParser(json);
150151
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
package com.fasterxml.jackson.failing;
2+
3+
import com.fasterxml.jackson.core.BaseTest;
4+
import com.fasterxml.jackson.core.JsonFactory;
5+
import com.fasterxml.jackson.core.JsonParser;
6+
import com.fasterxml.jackson.core.JsonToken;
7+
import com.fasterxml.jackson.core.TokenStreamFactory;
8+
import com.fasterxml.jackson.core.filter.FilteringParserDelegate;
9+
import com.fasterxml.jackson.core.filter.TokenFilter;
10+
import com.fasterxml.jackson.core.filter.TokenFilter.Inclusion;
11+
12+
// for [core#708]
13+
public class ParserFilterEmpty708Test extends BaseTest
14+
{
15+
// Could actually just return basic TokenFilter but...
16+
static class IncludeAllFilter extends TokenFilter {
17+
@Override
18+
public TokenFilter includeProperty(String name) {
19+
return this;
20+
}
21+
}
22+
23+
/*
24+
/**********************************************************************
25+
/* Test methods
26+
/**********************************************************************
27+
*/
28+
29+
private final JsonFactory JSON_F = newStreamFactory();
30+
31+
// [core#708]
32+
public void testEmptyArray() throws Exception
33+
{
34+
final String json = "[ ]";
35+
// should become: {"value":12}
36+
JsonParser p0 = _createParser(JSON_F, json);
37+
JsonParser p = new FilteringParserDelegate(p0,
38+
new IncludeAllFilter(),
39+
Inclusion.INCLUDE_ALL_AND_PATH,
40+
true // multipleMatches
41+
);
42+
43+
assertToken(JsonToken.START_ARRAY, p.nextToken());
44+
assertToken(JsonToken.END_ARRAY, p.nextToken());
45+
assertNull(p.nextToken());
46+
p.close();
47+
}
48+
49+
// [core#708]
50+
public void testEmptyObject() throws Exception
51+
{
52+
final String json = "{ }";
53+
// should become: {"value":12}
54+
JsonParser p0 = _createParser(JSON_F, json);
55+
JsonParser p = new FilteringParserDelegate(p0,
56+
new IncludeAllFilter(),
57+
Inclusion.INCLUDE_ALL_AND_PATH,
58+
true // multipleMatches
59+
);
60+
61+
assertToken(JsonToken.START_OBJECT, p.nextToken());
62+
assertToken(JsonToken.END_OBJECT, p.nextToken());
63+
assertNull(p.nextToken());
64+
p.close();
65+
}
66+
67+
/*
68+
/**********************************************************************
69+
/* Helper methods
70+
/**********************************************************************
71+
*/
72+
73+
private JsonParser _createParser(TokenStreamFactory f, String json) throws Exception {
74+
return f.createParser(json);
75+
}
76+
}

0 commit comments

Comments
 (0)