Skip to content

Commit e1e5e2b

Browse files
committed
And finally, async parser tests for #611 too
1 parent c1920ed commit e1e5e2b

File tree

4 files changed

+57
-6
lines changed

4 files changed

+57
-6
lines changed

src/test/java/com/fasterxml/jackson/core/json/async/AsyncNonStdNumbersTest.java renamed to src/test/java/com/fasterxml/jackson/core/json/async/AsyncNaNHandlingTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import com.fasterxml.jackson.core.json.JsonReadFeature;
88
import com.fasterxml.jackson.core.testsupport.AsyncReaderWrapper;
99

10-
public class AsyncNonStdNumbersTest extends AsyncTestBase
10+
public class AsyncNaNHandlingTest extends AsyncTestBase
1111
{
1212
private final JsonFactory DEFAULT_F = new JsonFactory();
1313

src/test/java/com/fasterxml/jackson/core/json/async/AsyncNumberLeadingZeroesTest.java renamed to src/test/java/com/fasterxml/jackson/core/json/async/AsyncNonStdNumberHandlingTest.java

Lines changed: 53 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
import com.fasterxml.jackson.core.json.JsonReadFeature;
88
import com.fasterxml.jackson.core.testsupport.AsyncReaderWrapper;
99

10-
public class AsyncNumberLeadingZeroesTest extends AsyncTestBase
10+
public class AsyncNonStdNumberHandlingTest extends AsyncTestBase
1111
{
1212
@SuppressWarnings("deprecation")
1313
public void testDefaultsForAsync() throws Exception {
@@ -77,7 +77,7 @@ public void testLeadingZeroesFloat() throws Exception
7777
_testLeadingZeroesFloat("-000.5 ", -0.5);
7878
}
7979

80-
public void _testLeadingZeroesFloat(String valueStr, double value) throws Exception
80+
private void _testLeadingZeroesFloat(String valueStr, double value) throws Exception
8181
{
8282
// first: verify that we get an exception
8383
JsonFactory f = new JsonFactory();
@@ -104,8 +104,58 @@ public void _testLeadingZeroesFloat(String valueStr, double value) throws Except
104104
p.close();
105105
}
106106

107+
public void testLeadingPeriodFloat() throws Exception
108+
{
109+
_testLeadingPeriodFloat(".25", 0.25, 1);
110+
_testLeadingPeriodFloat(".25", 0.25, 100);
111+
_testLeadingPeriodFloat(" .25 ", 0.25, 1);
112+
_testLeadingPeriodFloat(" .25 ", 0.25, 100);
113+
114+
_testLeadingPeriodFloat(".1", 0.1, 1);
115+
_testLeadingPeriodFloat(".1", 0.1, 100);
116+
117+
_testLeadingPeriodFloat(".6125 ", 0.6125, 1);
118+
_testLeadingPeriodFloat(".6125 ", 0.6125, 100);
119+
}
120+
121+
private void _testLeadingPeriodFloat(String valueStr, double value, int bytesPerRead)
122+
throws Exception
123+
{
124+
// first: verify that we get an exception
125+
126+
JsonFactory f = new JsonFactory();
127+
String JSON = valueStr;
128+
AsyncReaderWrapper p = createParser(f, JSON, bytesPerRead);
129+
try {
130+
p.nextToken();
131+
p.currentText();
132+
fail("Should have thrown an exception for doc <"+JSON+">");
133+
} catch (JsonParseException e) {
134+
verifyException(e, "Unexpected character ('.'");
135+
verifyException(e, "expected a valid value");
136+
} finally {
137+
p.close();
138+
}
139+
140+
// and then verify it's ok when enabled
141+
f = JsonFactory.builder()
142+
.enable(JsonReadFeature.ALLOW_LEADING_DECIMAL_POINT_FOR_NUMBERS)
143+
.build();
144+
p = createParser(f, JSON, bytesPerRead);
145+
assertToken(JsonToken.VALUE_NUMBER_FLOAT, p.nextToken());
146+
assertEquals(value, p.getDoubleValue());
147+
assertEquals(valueStr.trim(), p.currentText());
148+
p.close();
149+
}
150+
107151
private AsyncReaderWrapper createParser(JsonFactory f, String doc) throws IOException
108152
{
109-
return asyncForBytes(f, 1, _jsonDoc(doc), 1);
153+
return createParser(f, doc, 1);
154+
}
155+
156+
private AsyncReaderWrapper createParser(JsonFactory f, String doc, int bytesPerRead)
157+
throws IOException
158+
{
159+
return asyncForBytes(f, bytesPerRead, _jsonDoc(doc), 1);
110160
}
111161
}

src/test/java/com/fasterxml/jackson/failing/NonStandardNumbers611Test.java renamed to src/test/java/com/fasterxml/jackson/core/read/NonStandardNumberParsingTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
package com.fasterxml.jackson.failing;
1+
package com.fasterxml.jackson.core.read;
22

33
import com.fasterxml.jackson.core.*;
44
import com.fasterxml.jackson.core.json.JsonReadFeature;
55

6-
public class NonStandardNumbers611Test
6+
public class NonStandardNumberParsingTest
77
extends com.fasterxml.jackson.core.BaseTest
88
{
99
private final JsonFactory JSON_F = JsonFactory.builder()

src/test/java/com/fasterxml/jackson/core/read/NonStandardParserFeaturesTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ private void _testLeadingZeroes(int mode, boolean appendSpace) throws Exception
145145
// representation or not? Won't, for now:
146146
assertEquals("0", p.getText());
147147
assertToken(JsonToken.END_ARRAY, p.nextToken());
148+
p.close();
148149
}
149150

150151
private void _testAllowNaN(int mode) throws Exception

0 commit comments

Comments
 (0)