package me.prettyprint.cassandra.serializers;
import static org.junit.Assert.assertEquals;
import java.nio.ByteBuffer;
import org.apache.cassandra.utils.ByteBufferUtil;
import org.junit.Test;
/**
*
* @author Bozhidar Bozhanov
*
*/
public class IntegerSerializerTest {
static IntegerSerializer ext = IntegerSerializer.get();
@Test
public void testConversions() {
test(0);
test(1);
test(-1);
test(Integer.MAX_VALUE);
test(Integer.MIN_VALUE);
test(null);
}
@Test
public void testFromCassandra() {
assertEquals(new Integer(1), ext.fromByteBuffer(ByteBufferUtil.bytes(1)));
assertEquals(new Integer(-1), ext.fromByteBuffer(ByteBufferUtil.bytes(-1)));
assertEquals(new Integer(0), ext.fromByteBuffer(ByteBufferUtil.bytes(0)));
assertEquals(new Integer(Integer.MAX_VALUE), ext.fromByteBuffer(ByteBufferUtil.bytes(Integer.MAX_VALUE)));
assertEquals(new Integer(Integer.MIN_VALUE), ext.fromByteBuffer(ByteBufferUtil.bytes(Integer.MIN_VALUE)));
}
@Test
public void testFromCassandraAsBytes() {
assertEquals(new Integer(1), ext.fromBytes(ByteBufferUtil.bytes(1).array()));
assertEquals(new Integer(-1), ext.fromBytes(ByteBufferUtil.bytes(-1).array()));
assertEquals(new Integer(0), ext.fromBytes(ByteBufferUtil.bytes(0).array()));
assertEquals(new Integer(Integer.MAX_VALUE), ext.fromBytes(ByteBufferUtil.bytes(Integer.MAX_VALUE).array()));
assertEquals(new Integer(Integer.MIN_VALUE), ext.fromBytes(ByteBufferUtil.bytes(Integer.MIN_VALUE).array()));
}
private void test(Integer number) {
assertEquals(number, ext.fromByteBuffer(ext.toByteBuffer(number)));
// test compatibility with ByteBuffer default byte order
if (number != null) {
ByteBuffer b = ByteBuffer.allocate(4);
b.putInt(number);
b.rewind();
assertEquals(number, ext.fromByteBuffer(b));
}
}
}