diff options
author | Mohit Chugh <mohitchugh@yahoo.com> | 2016-05-26 17:10:22 -0700 |
---|---|---|
committer | Mohit Chugh <mohitchugh@yahoo.com> | 2016-05-26 17:35:56 -0700 |
commit | 010633aa2bd7c633dd9fc8be414a1b645d7ca055 (patch) | |
tree | 14c5664843ffaac4d64dbc6479dab0be8ad7d2df /src/test/java/com/fasterxml/jackson/databind/util | |
parent | 3c63730aedbb552995fdacdd1944d9eb41982778 (diff) | |
download | jackson-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.java | 36 |
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 |