|
|
@@ -1,6 +1,6 @@ |
|
|
|
package test.com.jd.blockchain.ledger.data; |
|
|
|
|
|
|
|
import com.jd.blockchain.ledger.BytesValueEncoding; |
|
|
|
import com.jd.blockchain.ledger.*; |
|
|
|
import com.jd.blockchain.utils.Bytes; |
|
|
|
import static org.junit.Assert.*; |
|
|
|
import org.junit.Test; |
|
|
@@ -17,8 +17,53 @@ public class BytesValueEncodingTest { |
|
|
|
assertTrue(BytesValueEncoding.supportType(Long.class)); |
|
|
|
assertTrue(BytesValueEncoding.supportType(String.class)); |
|
|
|
assertTrue(BytesValueEncoding.supportType(Bytes.class)); |
|
|
|
assertTrue(BytesValueEncoding.supportType(Operation.class)); |
|
|
|
assertFalse(BytesValueEncoding.supportType(byte.class)); |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void testSingle() { |
|
|
|
long longVal = 1024L; |
|
|
|
BytesValue longBytesVal1 = BytesValueEncoding.encodeSingle(longVal, null); |
|
|
|
BytesValue longBytesVal2 = BytesValueEncoding.encodeSingle(longVal, long.class); |
|
|
|
BytesValue longBytesVal3 = BytesValueEncoding.encodeSingle(longVal, Long.class); |
|
|
|
|
|
|
|
assertEquals(longBytesVal1.getValue(), longBytesVal2.getValue()); |
|
|
|
assertEquals(longBytesVal1.getType(), longBytesVal2.getType()); |
|
|
|
assertEquals(longBytesVal2.getValue(), longBytesVal3.getValue()); |
|
|
|
assertEquals(longBytesVal2.getType(), longBytesVal3.getType()); |
|
|
|
|
|
|
|
long resolveLongVal1 = (long)BytesValueEncoding.decode(longBytesVal1); |
|
|
|
long resolveLongVal2 = (long)BytesValueEncoding.decode(longBytesVal2); |
|
|
|
long resolveLongVal3 = (long)BytesValueEncoding.decode(longBytesVal3); |
|
|
|
|
|
|
|
assertEquals(resolveLongVal1, 1024L); |
|
|
|
assertEquals(resolveLongVal2, 1024L); |
|
|
|
assertEquals(resolveLongVal3, 1024L); |
|
|
|
} |
|
|
|
|
|
|
|
@Test |
|
|
|
public void testArray() { |
|
|
|
Object[] values = new Object[]{1024L, "zhangsan", "lisi".getBytes(), 16}; |
|
|
|
Class<?>[] classes = new Class[]{long.class, String.class, byte[].class, int.class}; |
|
|
|
|
|
|
|
BytesValueList bytesValueList = BytesValueEncoding.encodeArray(values, null); |
|
|
|
BytesValueList bytesValueList1 = BytesValueEncoding.encodeArray(values, classes); |
|
|
|
|
|
|
|
assertEquals(bytesValueList1.getValues().length, values.length); |
|
|
|
|
|
|
|
|
|
|
|
BytesValue[] bytesValues = bytesValueList.getValues(); |
|
|
|
assertEquals(bytesValues.length, values.length); |
|
|
|
|
|
|
|
assertEquals(DataType.INT64, bytesValues[0].getType()); |
|
|
|
assertEquals(DataType.TEXT, bytesValues[1].getType()); |
|
|
|
assertEquals(DataType.BYTES, bytesValues[2].getType()); |
|
|
|
assertEquals(DataType.INT32, bytesValues[3].getType()); |
|
|
|
|
|
|
|
Object[] resolveObjs = BytesValueEncoding.decode(bytesValueList, classes); |
|
|
|
|
|
|
|
assertArrayEquals(resolveObjs, values); |
|
|
|
} |
|
|
|
|
|
|
|
} |