package me.prettyprint.cassandra.model; import java.util.ArrayList; import java.util.List; import java.nio.ByteBuffer; import junit.framework.Assert; import me.prettyprint.cassandra.serializers.ByteBufferSerializer; import me.prettyprint.cassandra.serializers.LongSerializer; import me.prettyprint.cassandra.serializers.StringSerializer; import me.prettyprint.hector.api.beans.ColumnSlice; import org.apache.cassandra.thrift.Column; import org.junit.Test; /** * * @author Ran Tavory * */ public class ColumnSliceTest { StringSerializer se = StringSerializer.get(); LongSerializer le = LongSerializer.get(); @Test public void testConstruction() { List<Column> tColumns = new ArrayList<Column>(); ColumnSlice<String, Long> slice = new ColumnSliceImpl<String, Long>(tColumns, se, le); Assert.assertTrue(slice.getColumns().isEmpty()); Column column = new Column(ByteBuffer.wrap(new byte[]{})); column.setValue(ByteBuffer.wrap(new byte[]{})); column.setTimestamp(0L); tColumns.add(column); slice = new ColumnSliceImpl<String, Long>(tColumns, se, le); Assert.assertEquals(1, slice.getColumns().size()); tColumns = new ArrayList<Column>(); column = new Column(se.toByteBuffer("1")); column.setValue(le.toByteBuffer(1L)); column.setTimestamp(0L); tColumns.add(column); slice = new ColumnSliceImpl<String, Long>(tColumns, se, le); Assert.assertEquals((Long) 1L, slice.getColumnByName("1").getValue()); } @Test public void testMultiCallOnByteBuffer() { List<Column> tColumns = new ArrayList<Column>(); Column column = new Column(se.toByteBuffer("1")); column.setValue(ByteBuffer.wrap("colvalue".getBytes())); column.setTimestamp(0L); tColumns.add(column); ColumnSlice<String, ByteBuffer> slice = new ColumnSliceImpl<String, ByteBuffer>(tColumns, se, ByteBufferSerializer.get()); ByteBuffer value = slice.getColumnByName("1").getValue(); Assert.assertEquals("colvalue", se.fromByteBuffer(value)); value.rewind(); Assert.assertEquals("colvalue", se.fromByteBuffer(value)); value.rewind(); Assert.assertEquals("colvalue", se.fromByteBuffer(value)); } }