package me.prettyprint.hom.converters; import static org.junit.Assert.assertEquals; import java.beans.PropertyDescriptor; import java.math.BigInteger; import me.prettyprint.hom.PropertyMappingDefinition; import me.prettyprint.hom.cache.HectorObjectMapperException; import org.junit.Test; public class VariableIntegerConverterTest { VariableIntegerConverter conv = new VariableIntegerConverter(); @Test public void testByte() throws Exception { byte[] ba; byte b1 = 123; ba = conv.convertObjTypeToCassType(b1); assertEquals(b1, conv.convertCassTypeToObjType(new PropertyMappingDefinition( new PropertyDescriptor("b1", TestClass.class), "foo", VariableIntegerConverter.class), ba)); Byte b2 = 1; ba = conv.convertObjTypeToCassType(b2); assertEquals(b2, conv.convertCassTypeToObjType(new PropertyMappingDefinition( new PropertyDescriptor("b2", TestClass.class), "foo", VariableIntegerConverter.class), ba)); } @Test public void testInteger() throws Exception { byte[] ba; int i1 = 123; ba = conv.convertObjTypeToCassType(i1); assertEquals(i1, conv.convertCassTypeToObjType(new PropertyMappingDefinition( new PropertyDescriptor("i1", TestClass.class), "foo", VariableIntegerConverter.class), ba)); Integer i2 = 1; ba = conv.convertObjTypeToCassType(i2); assertEquals(i2, conv.convertCassTypeToObjType(new PropertyMappingDefinition( new PropertyDescriptor("i2", TestClass.class), "foo", VariableIntegerConverter.class), ba)); } @Test public void testShort() throws Exception { byte[] ba; short s1 = 123; ba = conv.convertObjTypeToCassType(s1); assertEquals(s1, conv.convertCassTypeToObjType(new PropertyMappingDefinition( new PropertyDescriptor("s1", TestClass.class), "foo", VariableIntegerConverter.class), ba)); Short s2 = 1; ba = conv.convertObjTypeToCassType(s2); assertEquals(s2, conv.convertCassTypeToObjType(new PropertyMappingDefinition( new PropertyDescriptor("s2", TestClass.class), "foo", VariableIntegerConverter.class), ba)); } @Test public void testLong() throws Exception { byte[] ba; long l1 = 123; ba = conv.convertObjTypeToCassType(l1); assertEquals(l1, conv.convertCassTypeToObjType(new PropertyMappingDefinition( new PropertyDescriptor("l1", TestClass.class), "foo", VariableIntegerConverter.class), ba)); Long l2 = 1L; ba = conv.convertObjTypeToCassType(l2); assertEquals(l2, conv.convertCassTypeToObjType(new PropertyMappingDefinition( new PropertyDescriptor("l2", TestClass.class), "foo", VariableIntegerConverter.class), ba)); } @Test public void testBigInteger() throws Exception { byte[] ba; BigInteger b1 = BigInteger.valueOf(123); ba = conv.convertObjTypeToCassType(b1); assertEquals(b1, conv.convertCassTypeToObjType(new PropertyMappingDefinition( new PropertyDescriptor("bigInt", TestClass.class), "foo", VariableIntegerConverter.class), ba)); } @Test(expected=HectorObjectMapperException.class) public void testStringToCassNotWork() throws Exception { byte[] ba; String s1 = new String("123"); ba = conv.convertObjTypeToCassType(s1); assertEquals(s1, conv.convertCassTypeToObjType(new PropertyMappingDefinition( new PropertyDescriptor("str1", TestClass.class), "foo", VariableIntegerConverter.class), ba)); } @Test(expected=HectorObjectMapperException.class) public void testStringFromCassNotWork() throws Exception { conv.convertCassTypeToObjType(new PropertyMappingDefinition( new PropertyDescriptor("str1", TestClass.class), "foo", VariableIntegerConverter.class), new String("123").getBytes()); } class TestClass { byte b1; Byte b2; short s1; Short s2; int i1; Integer i2; long l1; Long l2; BigInteger bigInt; String str1; // should not work public String getStr1() { return str1; } public void setStr1(String str1) { this.str1 = str1; } public Byte getB2() { return b2; } public void setB2(Byte b2) { this.b2 = b2; } public short getS1() { return s1; } public void setS1(short s1) { this.s1 = s1; } public Short getS2() { return s2; } public void setS2(Short s2) { this.s2 = s2; } public int getI1() { return i1; } public void setI1(int i1) { this.i1 = i1; } public Integer getI2() { return i2; } public void setI2(Integer i2) { this.i2 = i2; } public long getL1() { return l1; } public void setL1(long l1) { this.l1 = l1; } public Long getL2() { return l2; } public void setL2(Long l2) { this.l2 = l2; } public BigInteger getBigInt() { return bigInt; } public void setBigInt(BigInteger bigInt) { this.bigInt = bigInt; } public byte getB1() { return b1; } public void setB1(byte b1) { this.b1 = b1; } } }