package com.jsoniter.output; import com.jsoniter.ValueType; import com.jsoniter.any.*; import junit.framework.TestCase; import java.util.Arrays; import java.util.HashMap; public class TestAny extends TestCase { public void test_int() { Any any = Any.wrap(100); assertEquals(ValueType.NUMBER, any.valueType()); assertEquals("100", JsonStream.serialize(any)); assertEquals(Integer.valueOf(100), any.object()); assertEquals(100, any.toInt()); assertEquals(100L, any.toLong()); assertEquals(100D, any.toDouble()); assertEquals(100F, any.toFloat()); assertEquals("100", any.toString()); assertEquals(true, any.toBoolean()); any.set(101); assertEquals("101", any.toString()); } public void test_long() { Any any = Any.wrap(100L); assertEquals(ValueType.NUMBER, any.valueType()); assertEquals("100", JsonStream.serialize(any)); assertEquals(100, any.toInt()); assertEquals(100L, any.toLong()); assertEquals(100D, any.toDouble()); assertEquals(100F, any.toFloat()); assertEquals("100", any.toString()); assertEquals(true, any.toBoolean()); any.set(101L); assertEquals("101", any.toString()); } public void test_float() { Any any = Any.wrap(100F); assertEquals(ValueType.NUMBER, any.valueType()); assertEquals("100", JsonStream.serialize(any)); assertEquals(100, any.toInt()); assertEquals(100L, any.toLong()); assertEquals(100D, any.toDouble()); assertEquals(100F, any.toFloat()); assertEquals("100.0", any.toString()); assertEquals(true, any.toBoolean()); any.set(101F); assertEquals("101.0", any.toString()); } public void test_double() { Any any = Any.wrap(100D); assertEquals(ValueType.NUMBER, any.valueType()); assertEquals("100", JsonStream.serialize(any)); assertEquals(100, any.toInt()); assertEquals(100L, any.toLong()); assertEquals(100D, any.toDouble()); assertEquals(100F, any.toFloat()); assertEquals("100.0", any.toString()); assertEquals(true, any.toBoolean()); any.set(101D); assertEquals("101.0", any.toString()); } public void test_null() { Any any = Any.wrap((Object) null); assertEquals(ValueType.NULL, any.valueType()); assertEquals("null", JsonStream.serialize(any)); assertEquals(false, any.toBoolean()); assertEquals("null", any.toString()); } public void test_boolean() { Any any = Any.wrap(true); assertEquals(ValueType.BOOLEAN, any.valueType()); assertEquals("true", JsonStream.serialize(any)); assertEquals(1, any.toInt()); assertEquals(1L, any.toLong()); assertEquals(1F, any.toFloat()); assertEquals(1D, any.toDouble()); assertEquals("true", any.toString()); } public void test_string() { Any any = Any.wrap("hello"); assertEquals(ValueType.STRING, any.valueType()); assertEquals("\"hello\"", JsonStream.serialize(any)); any.set("100"); assertEquals(100, any.toInt()); assertEquals(100L, any.toLong()); assertEquals(100F, any.toFloat()); assertEquals(100D, any.toDouble()); assertEquals(true, any.toBoolean()); assertEquals("100", any.toString()); } public void test_list() { Any any = Any.wrap(Arrays.asList(1, 2, 3)); assertEquals(ValueType.ARRAY, any.valueType()); assertEquals("[1,2,3]", JsonStream.serialize(any)); assertEquals(Integer.valueOf(1), any.get(0).object()); assertEquals(true, any.toBoolean()); assertEquals("[1,2,3]", any.toString()); } public void test_array() { Any any = Any.wrap(new int[]{1, 2, 3}); assertEquals(ValueType.ARRAY, any.valueType()); assertEquals("[1,2,3]", JsonStream.serialize(any)); assertEquals(Integer.valueOf(1), any.get(0).object()); assertEquals(true, any.toBoolean()); assertEquals("[1,2,3]", any.toString()); } public void test_map() { HashMap<String, Object> val = new HashMap<String, Object>(); val.put("hello", 1); val.put("world", "!!"); Any any = Any.wrap(val); assertEquals(ValueType.OBJECT, any.valueType()); assertEquals("{\"world\":\"!!\",\"hello\":1}", JsonStream.serialize(any)); assertEquals(Integer.valueOf(1), any.get("hello").object()); assertEquals(true, any.toBoolean()); assertEquals("{\"world\":\"!!\",\"hello\":1}", any.toString()); } public static class MyClass { public Object field1; public Any field2; } public void test_my_class() { MyClass val = new MyClass(); val.field1 = "hello"; val.field2 = Any.wrap(new long[]{1, 2}); Any any = Any.wrap(val); assertEquals(ValueType.OBJECT, any.valueType()); assertEquals("{\"field1\":\"hello\",\"field2\":[1,2]}", JsonStream.serialize(any)); } public void test_object() { Any any = Any.wrap(new Object()); assertEquals(ValueType.OBJECT, any.valueType()); assertEquals("{}", JsonStream.serialize(new Object())); } }