@Test
@SuppressWarnings("unchecked")
public void testOthers() throws Exception
{
UnsafeByteArrayOutputStream os = new UnsafeByteArrayOutputStream();
StringBuffer buf = new StringBuffer();
for(int i=0;i<1024*32+32;i++)
buf.append('A');
Builder<String> sb = Builder.register(String.class);
sb.writeTo(buf.toString(), os);
assertEquals(sb.parseFrom(os.toByteArray()), buf.toString());
os = new UnsafeByteArrayOutputStream();
Builder<HashMap> builder = Builder.register(HashMap.class);
Map services = new HashMap();
HashMap map = new HashMap();
services.put("test.service", "http://127.0.0.1:9010/test.service");
map.put("name", "qianlei");
map.put("password", "123455");
map.put("services", services);
builder.writeTo(map, os);
byte[] b = os.toByteArray();
System.out.println(b.length+":"+Bytes.bytes2hex(b));
map = builder.parseFrom(b);
assertTrue(map.size() > 0);
assertEquals("http://127.0.0.1:9010/test.service", ((Map) map.get("services")).get("test.service"));
services = new ConcurrentHashMap();
services.put("test.service", "http://127.0.0.1:9010/test.service");
map.put("services", services);
os = new UnsafeByteArrayOutputStream();
builder.writeTo(map, os);
b = os.toByteArray();
System.out.println(b.length+":"+Bytes.bytes2hex(b));
map = builder.parseFrom(b);
assertTrue(map.size() > 0);
assertEquals("http://127.0.0.1:9010/test.service", ((Map) map.get("services")).get("test.service"));
Node node1 = new Node();
Node node0 = new Node();
node0.value = "0";
node0.next = node1;
node1.value = "1";
node1.prev = node0;
// write.
Builder<Node> nodebuilder = Builder.register(Node.class);
os = new UnsafeByteArrayOutputStream();
nodebuilder.writeTo(node0, os);
b = os.toByteArray();
System.out.println("Node:"+b.length+":"+Bytes.bytes2hex(b));
// parse
node0 = nodebuilder.parseFrom(b);
assertEquals(node0, node0.prev);
assertEquals(node0, node0.next.prev);