package Serializer;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.Test;
import com.bj58.spat.gaea.serializer.serializer.Serializer;
/**
*
* @author Service Platform Architecture Team (spat@58.com)
*/
public class SerializerTest {
@Test
public void testByte() throws Exception {
Serializer serializer = new Serializer();
Byte[] b = null;
byte[] buffer = serializer.Serialize(b);
Object obj1 = serializer.Derialize(buffer, Byte[].class);
Short[] s = new Short[] { 1, 2, 3 };
byte[] bs = serializer.Serialize(s);
Map<Byte, Object> map = new HashMap<Byte, Object>();
map.put((byte) 1, "abc");
map.put((byte) 2, 123456L);
map.put((byte) 3, s);
map.put((byte) 4, 123);
map.put((byte) 5, null);
byte[] buf3 = serializer.Serialize(map);
Map<Byte, Object> obj3 = (Map<Byte, Object>) serializer.Derialize(buf3,
Map.class);
System.out.println(obj3.get(5));
}
/**
* Test of WriteObject method, of class NullSerializer.
*/
@Test
public void TestObject() throws Exception {
SimpleClass sc = SimpleClass.Get();
Object data = sc;
Serializer serializer = new Serializer();
byte[] buffer = serializer.Serialize(data);
assertNotNull(buffer);
Object obj = serializer.Derialize(buffer, SimpleClass.class);
Object expect = obj;
assertNotNull(expect);
}
public void TestEqualObject() throws Exception {
Serializer serializer = new Serializer();
List<SimpleClass> scs = new ArrayList<SimpleClass>();
SimpleClass sc = SimpleClass.Get();
scs.add(sc);
scs.add(sc);
byte[] buffer = serializer.Serialize(scs);
Object obj = serializer.Derialize(buffer, ArrayList.class);
List<SimpleClass> scs2 = (List<SimpleClass>) obj;
assertNotNull(scs2);
assertTrue(scs2.get(0) == scs2.get(1));
}
@Test
public void TesteInt32() throws Exception {
Serializer serializer = new Serializer();
byte[] buffer = serializer.Serialize(123);
assertNotNull(buffer);
int num = (Integer) serializer.Derialize(buffer, Integer.class);
assertEquals(123, num);
}
@Test
public void TestDate() throws Exception {
Serializer serializer = new Serializer();
Object data = new Date();
byte[] buffer = serializer.Serialize(data);
assertNotNull(buffer);
Object obj = serializer.Derialize(buffer, Date.class);
Object expect = data;
assertEquals(expect, obj);
}
@Test
public void TestInt() throws Exception {
Serializer serializer = new Serializer();
Object data = (int) 32;
byte[] buffer = serializer.Serialize(data);
assertNotNull(buffer);
Object obj = serializer.Derialize(buffer, int.class);
Object expect = data;
assertEquals(expect, obj);
}
@Test
public void SerizlizeSqlDate() throws Exception {
Serializer serializer = new Serializer();
Object data = new java.sql.Date((new Date()).getTime());
byte[] buffer = serializer.Serialize(data);
assertNotNull(buffer);
Object obj = serializer.Derialize(buffer, java.sql.Date.class);
Object expect = data;
assertEquals(expect, obj);
}
@Test
public void SerizlizeSqlTimestamp() throws Exception {
Serializer serializer = new Serializer();
Object data = new java.sql.Timestamp((new Date()).getTime());
byte[] buffer = serializer.Serialize(data);
assertNotNull(buffer);
Object obj = serializer.Derialize(buffer, java.sql.Timestamp.class);
Object expect = data;
assertEquals(expect, obj);
}
@Test
public void SerizlizeSqlTime() throws Exception {
Serializer serializer = new Serializer();
Object data = new java.sql.Time((new Date()).getTime());
byte[] buffer = serializer.Serialize(data);
assertNotNull(buffer);
Object obj = serializer.Derialize(buffer, java.sql.Time.class);
Object expect = data;
assertEquals(expect, obj);
}
@Test
public void TestIntArray() throws Exception {
Integer[] data = new Integer[] { 12, 32, 44 };
Serializer serializer = new Serializer();
byte[] buffer = serializer.Serialize(data);
assertNotNull(buffer);
Object obj = serializer.Derialize(buffer, data.getClass());
Object expect = data;
assertArrayEquals((Integer[]) expect, (Integer[]) obj);
}
@Test
public void TestMap() throws Exception {
Map data = new HashMap();
data.put("123", "asdfasd");
data.put(234, 444);
Serializer serializer = new Serializer();
byte[] buffer = serializer.Serialize(data);
assertNotNull(buffer);
Object obj = serializer.Derialize(buffer, HashMap.class);
Object expect = data;
assertEquals(expect, obj);
}
@Test
public void TestList() throws Exception {
List data = new ArrayList();
data.add("234");
data.add(1234);
Serializer serializer = new Serializer();
byte[] buffer = serializer.Serialize(data);
assertNotNull(buffer);
Object obj = serializer.Derialize(buffer, data.getClass());
Object expect = data;
assertEquals(expect, obj);
}
@Test
public void TestString() throws Exception {
String data = "$^%&^*&([新闻]智慧的星球 Sun的力量可强化?serializer.Derialize(buffer, data.getClass())";
Serializer serializer = new Serializer();
byte[] buffer = serializer.Serialize(data);
assertNotNull(buffer);
Object obj = serializer.Derialize(buffer, data.getClass());
Object expect = data;
assertEquals(expect, obj);
}
@Test
public void TestBoolean() throws Exception {
Boolean data = false;
Serializer serializer = new Serializer();
byte[] buffer = serializer.Serialize(data);
assertNotNull(buffer);
Object obj = serializer.Derialize(buffer, data.getClass());
Object expect = data;
assertEquals(expect, obj);
Boolean data2 = true;
byte[] buffer2 = serializer.Serialize(data2);
assertNotNull(buffer2);
Object obj2 = serializer.Derialize(buffer2, data2.getClass());
Object expect2 = data2;
assertEquals(expect2, obj2);
}
@Test
public void TestEnum() throws Exception {
Serializer serializer = new Serializer();
Object data = EnmReadState.UnRead;
byte[] buffer = serializer.Serialize(data);
assertNotNull(buffer);
Object obj = serializer.Derialize(buffer, data.getClass());
Object expect = data;
assertEquals(expect, obj);
}
@Test
public void TestChar() throws Exception {
Serializer serializer = new Serializer();
char data = '中';
byte[] buffer = serializer.Serialize(data);
assertNotNull(buffer);
Object obj = serializer.Derialize(buffer, char.class);
Object expect = data;
assertEquals(expect, obj);
}
@Test
public void TestByte() throws Exception {
Serializer serializer = new Serializer();
Object data = 120;
byte[] buffer = serializer.Serialize(data);
assertNotNull(buffer);
Object obj = serializer.Derialize(buffer, data.getClass());
Object expect = data;
assertEquals(expect, obj);
}
@Test
public void TestListArray() throws Exception {
Serializer serializer = new Serializer();
ArrayList a1 = new ArrayList();
a1.add(1);
ArrayList a2 = new ArrayList();
a2.add(2);
Object data = new ArrayList[] { a1, a2 };
byte[] buffer = serializer.Serialize(data);
assertNotNull(buffer);
Object obj = serializer.Derialize(buffer, data.getClass());
Object expect = data;
Object a = Array.newInstance(List.class, 3);
assertEquals(expect, obj);
ArrayList[] abc = (ArrayList[]) obj;
}
}