NodeTestBase.java
package tools.jackson.databind.node;
import tools.jackson.databind.JsonNode;
import tools.jackson.databind.testutil.DatabindTestUtil;
import static org.junit.jupiter.api.Assertions.*;
import java.math.BigDecimal;
import java.math.BigInteger;
abstract class NodeTestBase extends DatabindTestUtil
{
protected void assertNodeNumbersForNonNumeric(JsonNode n)
{
assertFalse(n.isNumber());
assertFalse(n.canConvertToInt());
assertFalse(n.canConvertToLong());
assertFalse(n.canConvertToExactIntegral());
// As of 3.0, coercion rules vary by specific type so can no longer test these
//assertEquals(-42, n.asInt(-42));
//assertEquals(12345678901L, n.asLong(12345678901L));
//assertEquals(-19.25, n.asDouble(-19.25));
}
// Test to check conversions, coercions
protected void assertNodeNumbers(JsonNode n, int expInt, double expDouble)
{
assertEquals(expInt, n.asInt());
assertEquals(expInt, n.asInt(-42));
assertEquals((long) expInt, n.asLong());
assertEquals((long) expInt, n.asLong(19L));
assertEquals(expDouble, n.asDouble());
assertEquals(expDouble, n.asDouble(-19.25));
assertTrue(n.isEmpty());
}
// Testing for non-ContainerNode (ValueNode) stream method implementations
//
// @since 2.19
protected void assertNonContainerStreamMethods(ValueNode n)
{
assertEquals(0, n.valueStream().count());
assertEquals(0, n.propertyStream().count());
// And then empty forEachEntry()
n.forEachEntry((k, v) -> { throw new UnsupportedOperationException(); });
}
protected static BigDecimal bigDec(long l) { return new BigDecimal(l); }
protected static BigDecimal bigDec(double d) { return new BigDecimal(d); }
protected static BigDecimal bigDec(String str) { return new BigDecimal(str); }
protected static BigInteger bigInt(long l) {
return BigInteger.valueOf(l);
}
}