Rewrite of #296: require setting during construction to enable "check for existing current token"
diff --git a/src/test/java/com/fasterxml/jackson/core/json/ParserSequenceTest.java b/src/test/java/com/fasterxml/jackson/core/json/ParserSequenceTest.java
index f555186..85363f4 100644
--- a/src/test/java/com/fasterxml/jackson/core/json/ParserSequenceTest.java
+++ b/src/test/java/com/fasterxml/jackson/core/json/ParserSequenceTest.java
@@ -11,7 +11,7 @@
{
JsonParser p1 = JSON_FACTORY.createParser("[ 1 ]");
JsonParser p2 = JSON_FACTORY.createParser("[ 2 ]");
- JsonParserSequence seq = JsonParserSequence.createFlattened(p1, p2);
+ JsonParserSequence seq = JsonParserSequence.createFlattened(false, p1, p2);
assertEquals(2, seq.containedParsersCount());
assertFalse(p1.isClosed());
@@ -47,19 +47,49 @@
}
// for [jackson-core#296]
- public void testInitialized() throws Exception
+ public void testInitializationDisabled() throws Exception
{
- JsonParser p1 = JSON_FACTORY.createParser("1 2");
- JsonParser p2 = JSON_FACTORY.createParser("3 false");
- // consume '1', move to '2'
- assertToken(JsonToken.VALUE_NUMBER_INT, p1.nextToken());
- assertToken(JsonToken.VALUE_NUMBER_INT, p1.nextToken());
+ // // First, with old legacy settings
- JsonParserSequence seq = JsonParserSequence.createFlattened(p1, p2);
+ JsonParser p1 = JSON_FACTORY.createParser("1 2");
+ JsonParser p2 = JSON_FACTORY.createParser("3 true");
+ assertToken(JsonToken.VALUE_NUMBER_INT, p1.nextToken());
+ assertEquals(1, p1.getIntValue());
+ assertToken(JsonToken.VALUE_NUMBER_INT, p2.nextToken());
+ assertEquals(3, p2.getIntValue());
+
+ // with legacy settings, will see neither '1' nor '3'
+
+ JsonParserSequence seq = JsonParserSequence.createFlattened(false, p1, p2);
+ assertToken(JsonToken.VALUE_NUMBER_INT, seq.nextToken());
+ assertEquals(2, seq.getIntValue());
+ assertToken(JsonToken.VALUE_TRUE, seq.nextToken());
+ assertNull(seq.nextToken());
+ seq.close();
+ }
+
+ // for [jackson-core#296]
+ public void testInitializationEnabled() throws Exception
+ {
+ // // and then with new "check for current":
+ JsonParser p1 = JSON_FACTORY.createParser("1 2");
+ JsonParser p2 = JSON_FACTORY.createParser("3 true");
+ assertToken(JsonToken.VALUE_NUMBER_INT, p1.nextToken());
+ assertEquals(1, p1.getIntValue());
+ assertToken(JsonToken.VALUE_NUMBER_INT, p2.nextToken());
+ assertEquals(3, p2.getIntValue());
+
+ // with new settings, both '1' and '3' will be visible
+
+ JsonParserSequence seq = JsonParserSequence.createFlattened(true, p1, p2);
+ assertToken(JsonToken.VALUE_NUMBER_INT, seq.nextToken());
+ assertEquals(1, seq.getIntValue());
assertToken(JsonToken.VALUE_NUMBER_INT, seq.nextToken());
assertEquals(2, seq.getIntValue());
assertToken(JsonToken.VALUE_NUMBER_INT, seq.nextToken());
assertEquals(3, seq.getIntValue());
+ assertToken(JsonToken.VALUE_TRUE, seq.nextToken());
+ assertNull(seq.nextToken());
seq.close();
}
}