/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.scale7.cassandra.pelops.types;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.nio.ByteBuffer;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.scale7.cassandra.pelops.Bytes;
/**
*
* @author Ali Serghini
*/
public class CompositeTypeTest {
public CompositeTypeTest() {
}
@BeforeClass
public static void setUpClass() throws Exception {
}
@AfterClass
public static void tearDownClass() throws Exception {
}
@Before
public void setUp() {
}
@After
public void tearDown() {
}
@Test
public void test() {
final CompositeType.Builder builder = CompositeType.Builder.newBuilder(13);
builder.addBoolean(true);
builder.addByte((byte) 5);
builder.addByteArray("byte[] test".getBytes());
builder.addByteBuffer(ByteBuffer.wrap("ByteBuffer test".getBytes()));
builder.addBytes(Bytes.fromByteArray("Bytes test".getBytes()));
builder.addChar('c');
builder.addDouble(123456789d);
builder.addFloat(5468465f);
builder.addInt(123);
builder.addLong(264894651l);
builder.addShort((short) 1);
builder.addUTF8("utf8");
String uuid = UUID.randomUUID().toString();
builder.addUuid(uuid);
Bytes bytes = builder.build();
List<byte[]> parsedBytes = CompositeType.parse(bytes);
assertNotNull(parsedBytes);
assertEquals(13, parsedBytes.size());
assertTrue(Arrays.equals(parsedBytes.get(0), Bytes.fromBoolean(true).toByteArray()));
assertTrue(Arrays.equals(parsedBytes.get(1), Bytes.fromByte((byte) 5).toByteArray()));
assertTrue(Arrays.equals(parsedBytes.get(2), "byte[] test".getBytes()));
assertTrue(Arrays.equals(parsedBytes.get(3), "ByteBuffer test".getBytes()));
assertTrue(Arrays.equals(parsedBytes.get(4), "Bytes test".getBytes()));
assertTrue(Arrays.equals(parsedBytes.get(5), Bytes.fromChar('c').toByteArray()));
assertTrue(Arrays.equals(parsedBytes.get(6), Bytes.fromDouble(123456789d).toByteArray()));
assertTrue(Arrays.equals(parsedBytes.get(7), Bytes.fromFloat(5468465f).toByteArray()));
assertTrue(Arrays.equals(parsedBytes.get(8), Bytes.fromInt(123).toByteArray()));
assertTrue(Arrays.equals(parsedBytes.get(9), Bytes.fromLong(264894651l).toByteArray()));
assertTrue(Arrays.equals(parsedBytes.get(10), Bytes.fromShort((short) 1).toByteArray()));
assertTrue(Arrays.equals(parsedBytes.get(11), Bytes.fromUTF8("utf8").toByteArray()));
assertTrue(Arrays.equals(parsedBytes.get(12), Bytes.fromUuid(uuid).toByteArray()));
}
}