Files
jlibcom/unittest/com/jacob/com/VariantUtilitiesTest.java

133 lines
3.7 KiB
Java

package com.jacob.com;
import java.util.Arrays;
import java.util.Date;
import com.jacob.test.BaseTestCase;
/**
* This class should test some of the converter capabilities
*
*/
public class VariantUtilitiesTest extends BaseTestCase {
/**
* verifies our unpacking stuff
*/
public void testObjectsToVariants() {
Object testArray[] = new Object[] { Integer.valueOf(1),
Integer.valueOf(2) };
Variant resultArray[] = VariantUtilities.objectsToVariants(testArray);
assertEquals(2, resultArray.length);
Variant resultArray2[] = VariantUtilities
.objectsToVariants(resultArray);
assertEquals(2, resultArray2.length);
assertSame(resultArray[0], resultArray2[0]);
assertSame(resultArray[1], resultArray2[1]);
}
/**
* test nested arrays
*/
public void testObjectsToVariantNestedArray() {
Object testArray[] = new Object[] { Integer.valueOf(1),
Integer.valueOf(2) };
Object testArrayOuter[] = new Object[] { testArray };
Variant resultArray[] = VariantUtilities
.objectsToVariants(testArrayOuter);
// should be a SafeArray
assertEquals(1, resultArray.length);
}
/**
* verify that dispatch can convert from object to variant and that the
* variant holds the right value
*/
public void testConverters() {
Date testDate = new Date();
Variant fromDate = VariantUtilities.objectToVariant(testDate);
Date returnedDate = fromDate.getJavaDate();
// System.out.println("test date is "+testDate);
// System.out.println("VariantDate is "+fromDate.getJavaDate());
assertTrue("Could not call obj2variant(Date) and get it to work",
testDate.equals(returnedDate));
Currency someMoney = new Currency(12349876L);
Variant fromMoney = VariantUtilities.objectToVariant(someMoney);
Currency someMoneyConverted = fromMoney.getCurrency();
assertTrue("Could not call obj2variant(Long) and get it to work",
someMoney.equals(someMoneyConverted));
System.out.println("currency returned was: " + someMoneyConverted);
}
public void testPrimitiveByteArray() {
byte[] arr = new byte[] { 1, 2, 3 };
Variant arrVar = VariantUtilities.objectToVariant(arr);
assertNotNull(arrVar);
SafeArray sa = arrVar.toSafeArray();
assertNotNull(sa);
assertEquals(Variant.VariantByte, sa.getvt());
assertEquals(0, sa.getLBound());
assertEquals(2, sa.getUBound());
byte[] bytes = sa.toByteArray();
assertTrue(Arrays.equals(bytes, arr));
}
public void testPrimitiveIntArray() {
int[] arr = new int[] { 1000, 2000, 3 };
Variant arrVar = VariantUtilities.objectToVariant(arr);
assertNotNull(arrVar);
SafeArray sa = arrVar.toSafeArray();
assertNotNull(sa);
assertEquals(Variant.VariantInt, sa.getvt());
assertEquals(0, sa.getLBound());
assertEquals(2, sa.getUBound());
int[] ints = sa.toIntArray();
assertTrue(Arrays.equals(ints, arr));
}
public void testPrimitiveDoubleArray() {
double[] arr = new double[] { 1000, 2000, 3 };
Variant arrVar = VariantUtilities.objectToVariant(arr);
assertNotNull(arrVar);
SafeArray sa = arrVar.toSafeArray();
assertNotNull(sa);
assertEquals(Variant.VariantDouble, sa.getvt());
assertEquals(0, sa.getLBound());
assertEquals(2, sa.getUBound());
double[] doubles = sa.toDoubleArray();
assertTrue(Arrays.equals(doubles, arr));
}
public void testPrimitiveLongArray() {
long[] arr = new long[] { 0xcafebabecafebabeL, 42, 0xbabecafebabeL };
Variant arrVar = VariantUtilities.objectToVariant(arr);
assertNotNull(arrVar);
SafeArray sa = arrVar.toSafeArray();
assertNotNull(sa);
assertEquals(Variant.VariantLongInt, sa.getvt());
assertEquals(0, sa.getLBound());
assertEquals(2, sa.getUBound());
long[] longs = sa.toLongArray();
assertTrue(Arrays.equals(longs, arr));
}
}