Skip to content

Commit f0a2dee

Browse files
committed
Add test wrt core#1433
1 parent 872b97a commit f0a2dee

1 file changed

Lines changed: 57 additions & 0 deletions

File tree

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package com.fasterxml.jackson.dataformat.xml.deser;
2+
3+
import org.junit.jupiter.api.Test;
4+
5+
import com.fasterxml.jackson.core.*;
6+
import com.fasterxml.jackson.core.exc.StreamReadException;
7+
8+
import com.fasterxml.jackson.dataformat.xml.*;
9+
10+
import static org.junit.jupiter.api.Assertions.assertNull;
11+
import static org.junit.jupiter.api.Assertions.assertEquals;
12+
import static org.junit.jupiter.api.Assertions.assertTrue;
13+
import static org.junit.jupiter.api.Assertions.fail;
14+
15+
public class XmlNumberParsingGetType1433Test
16+
extends XmlTestUtil
17+
{
18+
private final XmlMapper XML_MAPPER = xmlMapper(false);
19+
20+
// Bit different for XML as there's rarely "native" number tokens
21+
@Test
22+
void getNumberType() throws Exception
23+
{
24+
JsonParser p;
25+
26+
p = _createParser("<root>123</root>");
27+
_verifyGetNumberTypeFail(p, "null");
28+
assertToken(JsonToken.START_OBJECT, p.nextToken());
29+
_verifyGetNumberTypeFail(p, "START_OBJECT");
30+
assertToken(JsonToken.FIELD_NAME, p.nextToken());
31+
_verifyGetNumberTypeFail(p, "FIELD_NAME");
32+
assertToken(JsonToken.VALUE_STRING, p.nextToken());
33+
assertTrue(p.isExpectedNumberIntToken());
34+
assertToken(JsonToken.VALUE_NUMBER_INT, p.currentToken());
35+
assertEquals(JsonParser.NumberType.INT, p.getNumberType());
36+
assertToken(JsonToken.END_OBJECT, p.nextToken());
37+
_verifyGetNumberTypeFail(p, "END_OBJECT");
38+
assertNull(p.nextToken());
39+
_verifyGetNumberTypeFail(p, "null");
40+
p.close();
41+
_verifyGetNumberTypeFail(p, "null");
42+
}
43+
44+
private void _verifyGetNumberTypeFail(JsonParser p, String token) throws Exception
45+
{
46+
try {
47+
p.getNumberType();
48+
fail("Should not pass");
49+
} catch (StreamReadException e) {
50+
verifyException(e, "Current token ("+token+") not numeric, can not use numeric");
51+
}
52+
}
53+
54+
private JsonParser _createParser(String text) throws Exception {
55+
return XML_MAPPER.createParser(text);
56+
}
57+
}

0 commit comments

Comments
 (0)