package com.jsoniter.output; import junit.framework.TestCase; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.math.BigDecimal; import java.math.BigInteger; public class TestNative extends TestCase { static { // JsonStream.setMode(EncodingMode.REFLECTION_MODE); } private ByteArrayOutputStream baos; private JsonStream stream; public void setUp() { baos = new ByteArrayOutputStream(); stream = new JsonStream(baos, 4096); } public void test_string() throws IOException { stream = new JsonStream(baos, 32); stream.writeVal("1234567890123456789012345678901234567890"); stream.close(); assertEquals("'1234567890123456789012345678901234567890'".replace('\'', '"'), baos.toString()); } public void test_slash() throws IOException { stream.writeVal("/\\"); stream.close(); assertEquals("\"/\\\\\"", baos.toString()); } public void test_escape() throws IOException { stream.writeVal("hel\nlo"); stream.close(); assertEquals("'hel\\nlo'".replace('\'', '"'), baos.toString()); } public void test_utf8() throws IOException { stream.writeVal("中文"); stream.close(); assertEquals("\"\\u4e2d\\u6587\"", baos.toString()); } public void test_int() throws IOException { stream.writeVal(100); stream.close(); assertEquals("100", baos.toString()); } public void test_boxed_int() throws IOException { Object val = Integer.valueOf(100); stream.writeVal(val); stream.close(); assertEquals("100", baos.toString()); } public void test_negative_int() throws IOException { stream.writeVal(-100); stream.close(); assertEquals("-100", baos.toString()); } public void test_small_int() throws IOException { stream.writeVal(3); stream.close(); assertEquals("3", baos.toString()); } public void test_large_int() throws IOException { stream.writeVal(31415926); stream.close(); assertEquals("31415926", baos.toString()); } public void test_long() throws IOException { stream.writeVal(100L); stream.close(); assertEquals("100", baos.toString()); } public void test_negative_long() throws IOException { stream.writeVal(-100L); stream.close(); assertEquals("-100", baos.toString()); } public void test_short() throws IOException { stream.writeVal(((short)555)); stream.close(); assertEquals("555", baos.toString()); assertEquals("555", JsonStream.serialize(new Short((short)555))); } public void test_no_decimal_float() throws IOException { stream.writeVal(100f); stream.close(); assertEquals("100", baos.toString()); } public void test_float2() throws IOException { stream.writeVal(0.000001f); stream.close(); assertEquals("0.000001", baos.toString()); } public void test_float3() throws IOException { stream.writeVal(0.00001f); stream.close(); assertEquals("0.00001", baos.toString()); } public void test_big_float() throws IOException { stream.writeVal((float)0x4ffffff); stream.close(); assertEquals("83886080", baos.toString()); } public void test_double() throws IOException { stream.writeVal(1.001d); stream.close(); assertEquals("1.001", baos.toString()); } public void test_large_double() throws IOException { stream.writeVal(Double.MAX_VALUE); stream.close(); assertEquals("1.7976931348623157E308", baos.toString()); } public void test_boolean() throws IOException { stream.writeVal(true); stream.writeVal(false); stream.close(); assertEquals("truefalse".replace('\'', '"'), baos.toString()); } public void test_big_decimal() throws IOException { stream.writeVal(new BigDecimal("12.34")); stream.close(); assertEquals("12.34".replace('\'', '"'), baos.toString()); } public void test_big_integer() throws IOException { stream.writeVal(new BigInteger("1234")); stream.close(); assertEquals("1234".replace('\'', '"'), baos.toString()); } public void test_raw() throws IOException { stream = new JsonStream(baos, 32); String val = "1234567890123456789012345678901234567890"; stream.writeRaw(val, val.length()); stream.close(); assertEquals(val.replace('\'', '"'), baos.toString()); } }