aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/com/fasterxml/jackson/databind/util
diff options
context:
space:
mode:
authorMohit Chugh <mohitchugh@yahoo.com>2016-05-26 17:10:22 -0700
committerMohit Chugh <mohitchugh@yahoo.com>2016-05-26 17:35:56 -0700
commit010633aa2bd7c633dd9fc8be414a1b645d7ca055 (patch)
tree14c5664843ffaac4d64dbc6479dab0be8ad7d2df /src/test/java/com/fasterxml/jackson/databind/util
parent3c63730aedbb552995fdacdd1944d9eb41982778 (diff)
downloadjackson-databind-010633aa2bd7c633dd9fc8be414a1b645d7ca055.tar.gz
Added a unit test to illustrate the issue with the JsonWriteContext incorrectly
returing the parent's earlier sibling name. Note that the test is failing for illustrative purposes so I don't expect it to pass CI.
Diffstat (limited to 'src/test/java/com/fasterxml/jackson/databind/util')
-rw-r--r--src/test/java/com/fasterxml/jackson/databind/util/TestTokenBuffer.java36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/test/java/com/fasterxml/jackson/databind/util/TestTokenBuffer.java b/src/test/java/com/fasterxml/jackson/databind/util/TestTokenBuffer.java
index 4e14bbf3e..b684ff91f 100644
--- a/src/test/java/com/fasterxml/jackson/databind/util/TestTokenBuffer.java
+++ b/src/test/java/com/fasterxml/jackson/databind/util/TestTokenBuffer.java
@@ -7,6 +7,7 @@ import com.fasterxml.jackson.core.*;
import com.fasterxml.jackson.core.util.JsonParserSequence;
import com.fasterxml.jackson.databind.BaseMapTest;
import com.fasterxml.jackson.databind.ObjectMapper;
+import com.sun.xml.internal.messaging.saaj.packaging.mime.internet.HeaderTokenizer;
public class TestTokenBuffer extends BaseMapTest
{
@@ -54,6 +55,41 @@ public class TestTokenBuffer extends BaseMapTest
buf.close();
}
+ public void testParentContext() throws IOException
+ {
+ TokenBuffer buf = new TokenBuffer(null, false); // no ObjectCodec
+ buf.writeStartObject();
+ buf.writeFieldName("b");
+ buf.writeStartObject();
+ buf.writeFieldName("c");
+ //This assertion succeeds as expected
+ assertEquals("b", buf.getOutputContext().getParent().getCurrentName());
+ buf.writeString("cval");
+ buf.writeEndObject();
+ buf.writeEndObject();
+ buf.close();
+ }
+
+ public void testParentSiblingContext() throws IOException
+ {
+ TokenBuffer buf = new TokenBuffer(null, false); // no ObjectCodec
+
+ buf.writeStartObject();
+ buf.writeFieldName("a");
+ buf.writeStartObject();
+ buf.writeEndObject();
+
+ buf.writeFieldName("b");
+ buf.writeStartObject();
+ buf.writeFieldName("c");
+ //This assertion fails (because of 'a')
+ assertEquals("b", buf.getOutputContext().getParent().getCurrentName());
+ buf.writeString("cval");
+ buf.writeEndObject();
+ buf.writeEndObject();
+ buf.close();
+ }
+
public void testSimpleArray() throws IOException
{
TokenBuffer buf = new TokenBuffer(null, false); // no ObjectCodec