From 1d9670c3ec160ae63d55abf0309da305559c6f3e Mon Sep 17 00:00:00 2001 From: zznate Date: Tue, 1 Feb 2011 23:06:13 -0600 Subject: [PATCH] updated serializers with better testing from cassandra BButil --- .../serializers/IntegerSerializer.java | 2 +- .../serializers/IntegerSerializerTest.java | 25 ++++++++++++++++++- .../serializers/LongSerializerTest.java | 14 ++++++++++- 3 files changed, 38 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/me/prettyprint/cassandra/serializers/IntegerSerializer.java b/core/src/main/java/me/prettyprint/cassandra/serializers/IntegerSerializer.java index eb4739580..a2000b5c5 100644 --- a/core/src/main/java/me/prettyprint/cassandra/serializers/IntegerSerializer.java +++ b/core/src/main/java/me/prettyprint/cassandra/serializers/IntegerSerializer.java @@ -38,7 +38,7 @@ public Integer fromByteBuffer(ByteBuffer byteBuffer) { @Override public Integer fromBytes(byte[] bytes) { - ByteBuffer bb = ByteBuffer.allocate(4).put(bytes); + ByteBuffer bb = ByteBuffer.allocate(4).put(bytes, 0, 4); bb.rewind(); return bb.getInt(); } diff --git a/core/src/test/java/me/prettyprint/cassandra/serializers/IntegerSerializerTest.java b/core/src/test/java/me/prettyprint/cassandra/serializers/IntegerSerializerTest.java index 1e83070ea..21e2c7051 100644 --- a/core/src/test/java/me/prettyprint/cassandra/serializers/IntegerSerializerTest.java +++ b/core/src/test/java/me/prettyprint/cassandra/serializers/IntegerSerializerTest.java @@ -4,6 +4,8 @@ import java.nio.ByteBuffer; +import org.apache.cassandra.utils.ByteBufferUtil; +import org.apache.cassandra.utils.FBUtilities; import org.junit.Test; /** @@ -13,6 +15,8 @@ */ public class IntegerSerializerTest { + static IntegerSerializer ext = IntegerSerializer.get(); + @Test public void testConversions() { test(0); @@ -23,8 +27,27 @@ public void testConversions() { test(null); } + @Test + public void testFromCassandra() { + assertEquals(new Integer(1), ext.fromByteBuffer(FBUtilities.toByteBuffer(1))); + assertEquals(new Integer(-1), ext.fromByteBuffer(FBUtilities.toByteBuffer(-1))); + assertEquals(new Integer(0), ext.fromByteBuffer(FBUtilities.toByteBuffer(0))); + assertEquals(new Integer(Integer.MAX_VALUE), ext.fromByteBuffer(FBUtilities.toByteBuffer(Integer.MAX_VALUE))); + assertEquals(new Integer(Integer.MIN_VALUE), ext.fromByteBuffer(FBUtilities.toByteBuffer(Integer.MIN_VALUE))); + } + + @Test + public void testFromCassandraAsBytes() { + assertEquals(new Integer(1), ext.fromBytes(FBUtilities.toByteBuffer(1).array())); + assertEquals(new Integer(-1), ext.fromBytes(FBUtilities.toByteBuffer(-1).array())); + assertEquals(new Integer(0), ext.fromBytes(FBUtilities.toByteBuffer(0).array())); + assertEquals(new Integer(Integer.MAX_VALUE), ext.fromBytes(FBUtilities.toByteBuffer(Integer.MAX_VALUE).array())); + assertEquals(new Integer(Integer.MIN_VALUE), ext.fromBytes(FBUtilities.toByteBuffer(Integer.MIN_VALUE).array())); + } + + private void test(Integer number) { - IntegerSerializer ext = IntegerSerializer.get(); + assertEquals(number, ext.fromByteBuffer(ext.toByteBuffer(number))); // test compatibility with ByteBuffer default byte order diff --git a/core/src/test/java/me/prettyprint/cassandra/serializers/LongSerializerTest.java b/core/src/test/java/me/prettyprint/cassandra/serializers/LongSerializerTest.java index 7aa13f9e6..eed8b661b 100644 --- a/core/src/test/java/me/prettyprint/cassandra/serializers/LongSerializerTest.java +++ b/core/src/test/java/me/prettyprint/cassandra/serializers/LongSerializerTest.java @@ -4,10 +4,13 @@ import java.nio.ByteBuffer; +import org.apache.cassandra.utils.FBUtilities; import org.junit.Test; public class LongSerializerTest { + static LongSerializer ext = LongSerializer.get(); + @Test public void testConversions() { test(0l); @@ -18,8 +21,17 @@ public void testConversions() { test(null); } + @Test + public void testFromCassandra() { + assertEquals(new Long(1), ext.fromByteBuffer(FBUtilities.toByteBuffer(1L))); + assertEquals(new Long(0), ext.fromByteBuffer(FBUtilities.toByteBuffer(0L))); + assertEquals(new Long(-1), ext.fromByteBuffer(FBUtilities.toByteBuffer(-1L))); + assertEquals(new Long(Long.MIN_VALUE), ext.fromByteBuffer(FBUtilities.toByteBuffer(Long.MIN_VALUE))); + assertEquals(new Long(Long.MAX_VALUE), ext.fromByteBuffer(FBUtilities.toByteBuffer(Long.MAX_VALUE))); + } + private void test(Long number) { - LongSerializer ext = new LongSerializer(); + assertEquals(number, ext.fromByteBuffer(ext.toByteBuffer(number))); // test compatibility with ByteBuffer default byte order