blob: 96bab1d6a77f576c9e860c3367ae72173f634871 [file] [log] [blame]
package org.codehaus.jackson.map.tree;
import org.codehaus.jackson.map.BaseMapTest;
import java.io.*;
import org.codehaus.jackson.*;
import org.codehaus.jackson.map.*;
import org.codehaus.jackson.node.*;
/**
* This unit test suite tries to verify that JsonNode-based trees
* can be deserialized as expected.
*/
public class TestTreeDeserialization
extends BaseMapTest
{
final static class Bean {
int _x;
JsonNode _node;
public void setX(int x) { _x = x; }
public void setNode(JsonNode n) { _node = n; }
}
/**
* This test checks that is possible to mix "regular" Java objects
* and JsonNode.
*/
public void testMixed() throws IOException
{
ObjectMapper om = new ObjectMapper();
String JSON = "{\"node\" : { \"a\" : 3 }, \"x\" : 9 }";
Bean bean = om.readValue(JSON, Bean.class);
assertEquals(9, bean._x);
JsonNode n = bean._node;
assertNotNull(n);
assertEquals(1, n.size());
ObjectNode on = (ObjectNode) n;
assertEquals(3, on.get("a").getIntValue());
}
/// Verifying [JACKSON-143]
public void testArrayNodeEquality()
{
ArrayNode n1 = new ArrayNode(null);
ArrayNode n2 = new ArrayNode(null);
assertTrue(n1.equals(n2));
assertTrue(n2.equals(n1));
n1.add(TextNode.valueOf("Test"));
assertFalse(n1.equals(n2));
assertFalse(n2.equals(n1));
n2.add(TextNode.valueOf("Test"));
assertTrue(n1.equals(n2));
assertTrue(n2.equals(n1));
}
public void testObjectNodeEquality()
{
ObjectNode n1 = new ObjectNode(null);
ObjectNode n2 = new ObjectNode(null);
assertTrue(n1.equals(n2));
assertTrue(n2.equals(n1));
n1.put("x", TextNode.valueOf("Test"));
assertFalse(n1.equals(n2));
assertFalse(n2.equals(n1));
n2.put("x", TextNode.valueOf("Test"));
assertTrue(n1.equals(n2));
assertTrue(n2.equals(n1));
}
}