Skip to content

Commit 61bdbff

Browse files
committed
Add more Smile tests, extend fix
1 parent fd98da4 commit 61bdbff

File tree

2 files changed

+28
-17
lines changed

2 files changed

+28
-17
lines changed

smile/src/main/java/com/fasterxml/jackson/dataformat/smile/SmileParser.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1186,6 +1186,9 @@ public String getValueAsString() throws IOException
11861186
public String getValueAsString(String defaultValue) throws IOException
11871187
{
11881188
if (_currToken != JsonToken.VALUE_STRING) {
1189+
if (_currToken == JsonToken.FIELD_NAME) {
1190+
return currentName();
1191+
}
11891192
if (_currToken == null || _currToken == JsonToken.VALUE_NULL || !_currToken.isScalarValue()) {
11901193
return defaultValue;
11911194
}

smile/src/test/java/com/fasterxml/jackson/dataformat/smile/parse/BasicParserTest.java

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -217,31 +217,39 @@ public void testTrivialObject() throws IOException
217217
assertToken(JsonToken.FIELD_NAME, p.nextToken());
218218
assertEquals("abc", p.currentName());
219219
assertEquals("abc", p.getText());
220+
assertEquals("abc", p.getValueAsString());
221+
assertEquals("abc", p.getValueAsString("xyz"));
220222
assertToken(JsonToken.VALUE_NUMBER_INT, p.nextToken());
221223
assertEquals(13, p.getIntValue());
222-
assertToken(JsonToken.END_OBJECT, p.nextToken());
223-
p.close();
224+
assertToken(JsonToken.END_OBJECT, p.nextToken());
225+
p.close();
224226
}
225227

226228
public void testSimpleObject() throws IOException
227229
{
228-
byte[] data = _smileDoc("{\"a\":8, \"b\" : [ true ], \"c\" : { }, \"d\":{\"e\":null}}");
229-
SmileParser p = _smileParser(data);
230-
assertNull(p.getCurrentToken());
231-
assertToken(JsonToken.START_OBJECT, p.nextToken());
230+
byte[] data = _smileDoc("{\"a\":8, \"b\" : [ true ], \"c\" : { }, \"d\":{\"e\":null}}");
231+
SmileParser p = _smileParser(data);
232+
assertNull(p.currentToken());
233+
assertToken(JsonToken.START_OBJECT, p.nextToken());
232234

233-
assertToken(JsonToken.FIELD_NAME, p.nextToken());
235+
assertToken(JsonToken.FIELD_NAME, p.nextToken());
234236
assertEquals("a", p.currentName());
235-
assertEquals("a", p.getText());
237+
assertEquals("a", p.getText());
236238
assertEquals("a", p.getValueAsString());
237-
assertToken(JsonToken.VALUE_NUMBER_INT, p.nextToken());
238-
assertEquals(8, p.getIntValue());
239+
assertEquals("a", p.getValueAsString("x"));
239240

240-
assertToken(JsonToken.FIELD_NAME, p.nextToken());
241-
assertEquals("b", p.currentName());
242-
assertToken(JsonToken.START_ARRAY, p.nextToken());
243-
assertToken(JsonToken.VALUE_TRUE, p.nextToken());
244-
assertToken(JsonToken.END_ARRAY, p.nextToken());
241+
assertToken(JsonToken.VALUE_NUMBER_INT, p.nextToken());
242+
assertEquals(8, p.getIntValue());
243+
244+
assertToken(JsonToken.FIELD_NAME, p.nextToken());
245+
assertEquals("b", p.currentName());
246+
assertEquals("b", p.getText());
247+
assertEquals("b", p.getValueAsString());
248+
assertEquals("b", p.getValueAsString("y"));
249+
250+
assertToken(JsonToken.START_ARRAY, p.nextToken());
251+
assertToken(JsonToken.VALUE_TRUE, p.nextToken());
252+
assertToken(JsonToken.END_ARRAY, p.nextToken());
245253

246254
assertToken(JsonToken.FIELD_NAME, p.nextToken());
247255
assertEquals("c", p.currentName());
@@ -286,8 +294,8 @@ public void testNestedObject() throws IOException
286294

287295
public void testJsonSampleDoc() throws IOException
288296
{
289-
byte[] data = _smileDoc(SAMPLE_DOC_JSON_SPEC);
290-
verifyJsonSpecSampleDoc(_smileParser(data), true);
297+
byte[] data = _smileDoc(SAMPLE_DOC_JSON_SPEC);
298+
verifyJsonSpecSampleDoc(_smileParser(data), true);
291299
}
292300

293301
public void testUnicodeStringValues() throws IOException

0 commit comments

Comments
 (0)