133 lines
3.7 KiB
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));
|
|
}
|
|
|
|
}
|