package com.alibaba.doris.dataserver.store.serialize;
import java.util.Date;
import junit.framework.TestCase;
import com.alibaba.doris.common.data.Value;
import com.alibaba.doris.common.data.impl.ValueImpl;
import com.alibaba.doris.common.data.util.ByteUtils;
/**
* @author ajun Email:jack.yuj@alibaba-inc.com
*/
public class ValueSerializerTest extends TestCase {
public void testEncodeAndDecode() {
KeyValueSerializerFactory factory = KeyValueSerializerFactory.getInstance();
String value = "这是一个测试字符串,中文,繁體,1234243其它符號等等";
byte[] valueBytes = ByteUtils.stringToByte(value);
Value v = new ValueImpl(valueBytes, (new Date()).getTime());
v.setFlag((short) 1);
byte[] tempBytes = factory.encode(v).copyBytes();
assertNotNull(tempBytes);
Value newValue = factory.decodeValue(tempBytes);
assertNotNull(newValue);
assertEquals(v.getFlag(), newValue.getFlag());
assertEquals(v.getTimestamp(), newValue.getTimestamp());
String valueNew = ByteUtils.byteToString(newValue.getValueBytes());
assertEquals(value, valueNew);
assertNull(factory.decodeValue(new byte[0]));
}
}