package com.jsoniter; import com.jsoniter.any.Any; import com.jsoniter.spi.JsonException; import junit.framework.TestCase; import org.junit.experimental.categories.Category; import java.io.ByteArrayInputStream; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; public class TestReadAny extends TestCase { static { // JsonIterator.enableStreamingSupport(); } public void test_read_any() throws IOException { JsonIterator iter = JsonIterator.parse("[0,1,2,3]"); assertEquals(3, iter.readAny().toInt(3)); } public void test_bind_to_any() throws IOException { JsonIterator iter = JsonIterator.parse("{'field3': 100}".replace('\'', '"')); ComplexObject obj = iter.read(ComplexObject.class); System.out.println(obj.field3); } public void test_read_any_from_string() throws IOException { JsonIterator iter = JsonIterator.parse("{'numbers': ['1', '2', ['3', '4']]}".replace('\'', '"')); assertEquals(3, iter.readAny().toInt("numbers", 2, 0)); } public void test_read_int() throws IOException { assertEquals(100, JsonIterator.deserialize("100").toInt()); assertEquals(0, JsonIterator.deserialize("null").toInt()); assertEquals(100, JsonIterator.deserialize("\"100\"").toInt()); assertEquals(1, JsonIterator.deserialize("true").toInt()); Any any = JsonIterator.deserialize("100"); assertEquals(Long.valueOf(100), any.object()); assertEquals(100, any.toInt()); assertEquals(100L, any.toLong()); assertEquals(100F, any.toFloat()); assertEquals(100D, any.toDouble()); assertEquals("100", any.toString()); } public void test_read_boolean() throws IOException { assertEquals(true, JsonIterator.deserialize("100").toBoolean()); assertEquals(false, JsonIterator.deserialize("{}").toBoolean()); assertEquals(true, JsonIterator.deserialize("{\"field1\":100}").toBoolean()); assertEquals(false, JsonIterator.deserialize("null").toBoolean()); assertEquals(true, JsonIterator.deserialize("\"100\"").toBoolean()); assertEquals(true, JsonIterator.deserialize("true").toBoolean()); assertEquals(1, JsonIterator.deserialize("true").toInt()); assertEquals(0, JsonIterator.deserialize("false").toInt()); assertEquals("false", JsonIterator.deserialize("false").toString()); assertEquals(Boolean.FALSE, JsonIterator.deserialize("false").object()); } public void test_read_int_array() throws IOException { JsonIterator iter = JsonIterator.parse("[100,101]"); Any any = iter.readAny(); assertEquals(100, any.toInt(0)); assertEquals(101, any.toInt(1)); } public void test_read_int_object() throws IOException { JsonIterator iter = JsonIterator.parse("{\"field1\":100}"); Any any = iter.readAny(); assertEquals(100, any.toInt("field1")); } public void test_read_float_as_int() throws IOException { JsonIterator iter = JsonIterator.parse("[\"100.1\",\"101.1\"]"); Any any = iter.readAny(); assertEquals(100, any.toInt(0)); assertEquals(101, any.toInt(1)); } public void test_read_string() throws IOException { assertEquals("hello", JsonIterator.deserialize("\"hello\"").toString()); assertEquals("true", JsonIterator.deserialize("true").toString()); assertEquals("null", JsonIterator.deserialize("null").toString()); assertEquals("100", JsonIterator.deserialize("100").toString()); assertEquals(100, JsonIterator.deserialize("\"100\"").toInt()); assertEquals(true, JsonIterator.deserialize("\"hello\"").toBoolean()); } public void test_read_int_as_string() throws IOException { JsonIterator iter = JsonIterator.parse("100.5"); Any any = iter.readAny(); assertEquals("100.5", any.toString()); } public void test_get() throws IOException { assertEquals("100.5", JsonIterator.deserialize("100.5").get().toString()); assertEquals("100.5", JsonIterator.deserialize("[100.5]").get(0).toString()); assertEquals(ValueType.INVALID, JsonIterator.deserialize("null").get(0).valueType()); assertEquals(ValueType.INVALID, JsonIterator.deserialize("[]").get(0).valueType()); assertEquals(ValueType.INVALID, JsonIterator.deserialize("[]").get("hello").valueType()); assertEquals(ValueType.INVALID, JsonIterator.deserialize("{}").get(0).valueType()); } public void test_read_long() throws IOException { assertEquals(100L, JsonIterator.deserialize("100").toLong()); assertEquals(100L, JsonIterator.deserialize("100.1").toLong()); Any any = JsonIterator.deserialize("\"100.1\""); assertEquals(100L, any.toLong()); assertEquals(100L, any.toLong()); } public void test_read_float() throws IOException { assertEquals(100.0F, JsonIterator.deserialize("100").toFloat()); assertEquals(100.1F, JsonIterator.deserialize("100.1").toFloat()); assertEquals(100.1F, JsonIterator.deserialize("\"100.1\"").toFloat()); } public void test_size() throws IOException { assertEquals(0, JsonIterator.deserialize("[]").size()); assertEquals(1, JsonIterator.deserialize("[1]").size()); assertEquals(2, JsonIterator.deserialize("[1,2]").size()); assertEquals(1, JsonIterator.deserialize("{\"field1\":1}").size()); } public void test_keys() throws IOException { assertEquals(new HashSet