/*
* Copyright 2008-2017 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package griffon.util;
import griffon.core.editors.PropertyEditorResolver;
import griffon.core.editors.URIPropertyEditor;
import org.junit.Test;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.List;
import java.util.Map;
import java.util.Set;
import static griffon.util.CollectionUtils.newList;
import static griffon.util.CollectionUtils.newSet;
import static java.util.Arrays.asList;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
public class TypeUtilsTest {
@Test
public void setEquality() {
Set<?> s1 = newSet(2, "a");
Set<?> s2 = newSet("a", 2);
Set<?> s3 = newSet(3, "a");
Set<?> s4 = newSet(3);
assertTrue(TypeUtils.equals((Set) null, (Set) null));
assertFalse(TypeUtils.equals(s1, (Set) null));
assertFalse(TypeUtils.equals((Set) null, s2));
assertTrue(TypeUtils.equals(s1, s1));
assertTrue(TypeUtils.equals(s1, s2));
assertFalse(TypeUtils.equals(s1, s3));
assertFalse(TypeUtils.equals(s1, s4));
// force equals(Object, Object)
assertTrue(TypeUtils.equals((Object) s1, (Object) s2));
assertFalse(TypeUtils.equals((Object) s1, (Object) s3));
}
@Test
@SuppressWarnings("unchecked")
public void mapEquality() {
Map<String, String> m1 = CollectionUtils.<String, String>newMap("k1", "v1", "k2", "v2");
Map<String, String> m2 = CollectionUtils.<String, String>newMap("k2", "v2", "k1", "v1");
Map<String, String> m3 = CollectionUtils.<String, String>newMap("k1", "v1", "k3", "v3");
Map<String, String> m4 = CollectionUtils.<String, String>newMap("k1", "v1");
assertTrue(TypeUtils.equals((Map) null, (Map) null));
assertFalse(TypeUtils.equals(m1, (Map) null));
assertFalse(TypeUtils.equals((Map) null, m2));
assertTrue(TypeUtils.equals(m1, m1));
assertTrue(TypeUtils.equals(m1, m2));
assertFalse(TypeUtils.equals(m1, m3));
assertFalse(TypeUtils.equals(m1, m4));
// force equals(Object, Object)
assertTrue(TypeUtils.equals((Object) m1, (Object) m2));
assertFalse(TypeUtils.equals((Object) m1, (Object) m3));
}
@Test
public void listEquality() {
List<?> l1 = newList(2, "a");
List<?> l2 = newList(2, "a");
List<?> l3 = newList(3, "a");
List<?> l4 = newList(3);
assertTrue(TypeUtils.equals((List) null, (List) null));
assertFalse(TypeUtils.equals(l1, (List) null));
assertFalse(TypeUtils.equals((List) null, l2));
assertTrue(TypeUtils.equals(l1, l1));
assertTrue(TypeUtils.equals(l1, l2));
assertFalse(TypeUtils.equals(l1, l3));
assertFalse(TypeUtils.equals(l1, l4));
// force equals(Object, Object)
assertTrue(TypeUtils.equals((Object) l1, (Object) l2));
assertFalse(TypeUtils.equals((Object) l1, (Object) l3));
}
@Test
public void arrayEquality() {
Object[] a1 = new Object[]{2, "a"};
Object[] a2 = new Object[]{2, "a"};
Object[] a3 = new Object[]{3, "a"};
Object[] a4 = new Object[]{2};
assertTrue(TypeUtils.equals((Object[]) null, (Object[]) null));
assertFalse(TypeUtils.equals(a1, (Object[]) null));
assertFalse(TypeUtils.equals((Object[]) null, a2));
assertTrue(TypeUtils.equals(a1, a1));
assertTrue(TypeUtils.equals(a1, a2));
assertFalse(TypeUtils.equals(a1, a3));
assertFalse(TypeUtils.equals(a1, a4));
assertTrue(TypeUtils.arrayEqual(null, null));
assertFalse(TypeUtils.arrayEqual(a1, null));
assertFalse(TypeUtils.arrayEqual(null, a2));
// force equals(Object, Object)
assertTrue(TypeUtils.equals((Object) a1, (Object) a2));
assertFalse(TypeUtils.equals((Object) a1, (Object) a3));
}
@Test
@SuppressWarnings("UnnecessaryBoxing")
public void objectEquality() {
Object o1 = new Object();
Object o2 = new Object();
assertTrue(TypeUtils.equals((Object) null, (Object) null));
assertFalse(TypeUtils.equals(o1, (Object) null));
assertFalse(TypeUtils.equals((Object) null, o2));
assertTrue(TypeUtils.equals(o1, o1));
assertFalse(TypeUtils.equals(o1, o2));
assertTrue(TypeUtils.equals(1, Integer.valueOf(1)));
assertTrue(TypeUtils.equals("a", "a"));
assertFalse(TypeUtils.equals("a", "b"));
}
@Test
@SuppressWarnings("UnnecessaryBoxing")
public void equality() {
Integer[] integers1 = new Integer[]{Integer.valueOf(1), Integer.valueOf(2)};
Integer[] integers2 = new Integer[]{Integer.valueOf(1), Integer.valueOf(2), new Integer(3)};
int[] ints1 = {1, 2};
int[] ints2 = {1, 2, 3};
List<Integer> lintegers = asList(Integer.valueOf(1), Integer.valueOf(2));
assertTrue(TypeUtils.equals(integers1, integers1));
assertTrue(TypeUtils.equals(ints1, ints1));
assertFalse(TypeUtils.equals(integers1, ints2));
assertFalse(TypeUtils.equals(ints1, integers2));
assertTrue(TypeUtils.equals(integers1, lintegers));
assertTrue(TypeUtils.equals(lintegers, integers1));
assertTrue(TypeUtils.equals(ints1, lintegers));
assertTrue(TypeUtils.equals(lintegers, ints1));
// force equals(Object, Object)
assertTrue(TypeUtils.equals((Object) integers1, (Object) integers1));
assertTrue(TypeUtils.equals((Object) ints1, (Object) ints1));
assertFalse(TypeUtils.equals((Object) integers1, (Object) ints2));
assertFalse(TypeUtils.equals((Object) ints1, (Object) integers2));
assertTrue(TypeUtils.equals((Object) integers1, (Object) lintegers));
assertTrue(TypeUtils.equals((Object) lintegers, (Object) integers1));
assertTrue(TypeUtils.equals((Object) ints1, (Object) lintegers));
assertTrue(TypeUtils.equals((Object) lintegers, (Object) ints1));
}
@Test(expected = IllegalArgumentException.class)
public void castToNumberCantHandleNonNumberValues() {
assertEquals(1, TypeUtils.castToNumber(1));
TypeUtils.castToNumber(new Object());
}
@Test(expected = IllegalArgumentException.class)
public void castToNumberWithDefaultCantHandleNonNumberValues() {
assertEquals(1, TypeUtils.castToNumber(null, 1));
TypeUtils.castToNumber(new Object(), 1);
}
public void convertValue() throws URISyntaxException {
URI expected = new URI("http://localhost");
assertEquals(expected, TypeUtils.convertValue(URI.class, expected));
PropertyEditorResolver.registerEditor(URI.class, URIPropertyEditor.class);
assertEquals(expected, TypeUtils.convertValue(URI.class, "http://localhost"));
assertEquals(expected, TypeUtils.convertValue(URI.class, "http://localhost", "format"));
TypeUtils.convertValue(TypeUtils.class, expected);
}
@Test
public void convertBooleans() {
assertEquals(true, (boolean) TypeUtils.convertValue(Boolean.TYPE, Boolean.TRUE));
assertEquals(Boolean.TRUE, TypeUtils.convertValue(Boolean.class, Boolean.TRUE));
}
@Test
@SuppressWarnings("UnnecessaryBoxing")
public void convertCharacters() {
assertEquals('A', (char) TypeUtils.convertValue(Character.TYPE, Character.valueOf('A')));
assertEquals(Character.valueOf('A'), TypeUtils.convertValue(Character.class, Character.valueOf('A')));
}
@Test
public void convertNumbersIntoPrimitiveByte() {
assertEquals((byte) 10, (byte) TypeUtils.convertValue(Byte.TYPE, Byte.valueOf("10")));
assertEquals((byte) 10, (byte) TypeUtils.convertValue(Byte.TYPE, Short.valueOf("10")));
assertEquals((byte) 10, (byte) TypeUtils.convertValue(Byte.TYPE, Integer.valueOf("10")));
assertEquals((byte) 10, (byte) TypeUtils.convertValue(Byte.TYPE, Long.valueOf("10")));
assertEquals((byte) 10, (byte) TypeUtils.convertValue(Byte.TYPE, Float.valueOf("10")));
assertEquals((byte) 10, (byte) TypeUtils.convertValue(Byte.TYPE, Double.valueOf("10")));
assertEquals((byte) 10, (byte) TypeUtils.convertValue(Byte.TYPE, new BigInteger("10")));
assertEquals((byte) 10, (byte) TypeUtils.convertValue(Byte.TYPE, new BigDecimal("10")));
}
@Test
public void convertNumbersIntoWrapperByte() {
assertEquals(Byte.valueOf("10"), TypeUtils.convertValue(Byte.class, Byte.valueOf("10")));
assertEquals(Byte.valueOf("10"), TypeUtils.convertValue(Byte.class, Short.valueOf("10")));
assertEquals(Byte.valueOf("10"), TypeUtils.convertValue(Byte.class, Integer.valueOf("10")));
assertEquals(Byte.valueOf("10"), TypeUtils.convertValue(Byte.class, Long.valueOf("10")));
assertEquals(Byte.valueOf("10"), TypeUtils.convertValue(Byte.class, Float.valueOf("10")));
assertEquals(Byte.valueOf("10"), TypeUtils.convertValue(Byte.class, Double.valueOf("10")));
assertEquals(Byte.valueOf("10"), TypeUtils.convertValue(Byte.class, new BigInteger("10")));
assertEquals(Byte.valueOf("10"), TypeUtils.convertValue(Byte.class, new BigDecimal("10")));
}
@Test
public void convertNumbersIntoPrimitiveShort() {
assertEquals((short) 10, (short) TypeUtils.convertValue(Short.TYPE, Byte.valueOf("10")));
assertEquals((short) 10, (short) TypeUtils.convertValue(Short.TYPE, Short.valueOf("10")));
assertEquals((short) 10, (short) TypeUtils.convertValue(Short.TYPE, Integer.valueOf("10")));
assertEquals((short) 10, (short) TypeUtils.convertValue(Short.TYPE, Long.valueOf("10")));
assertEquals((short) 10, (short) TypeUtils.convertValue(Short.TYPE, Float.valueOf("10")));
assertEquals((short) 10, (short) TypeUtils.convertValue(Short.TYPE, Double.valueOf("10")));
assertEquals((short) 10, (short) TypeUtils.convertValue(Short.TYPE, new BigInteger("10")));
assertEquals((short) 10, (short) TypeUtils.convertValue(Short.TYPE, new BigDecimal("10")));
}
@Test
public void convertNumbersIntoWrapperShort() {
assertEquals(Short.valueOf("10"), TypeUtils.convertValue(Short.class, Byte.valueOf("10")));
assertEquals(Short.valueOf("10"), TypeUtils.convertValue(Short.class, Short.valueOf("10")));
assertEquals(Short.valueOf("10"), TypeUtils.convertValue(Short.class, Integer.valueOf("10")));
assertEquals(Short.valueOf("10"), TypeUtils.convertValue(Short.class, Long.valueOf("10")));
assertEquals(Short.valueOf("10"), TypeUtils.convertValue(Short.class, Float.valueOf("10")));
assertEquals(Short.valueOf("10"), TypeUtils.convertValue(Short.class, Double.valueOf("10")));
assertEquals(Short.valueOf("10"), TypeUtils.convertValue(Short.class, new BigInteger("10")));
assertEquals(Short.valueOf("10"), TypeUtils.convertValue(Short.class, new BigDecimal("10")));
}
@Test
public void convertNumbersIntoPrimitiveInteger() {
assertEquals((int) 10, (int) TypeUtils.convertValue(Integer.TYPE, Byte.valueOf("10")));
assertEquals((int) 10, (int) TypeUtils.convertValue(Integer.TYPE, Short.valueOf("10")));
assertEquals((int) 10, (int) TypeUtils.convertValue(Integer.TYPE, Integer.valueOf("10")));
assertEquals((int) 10, (int) TypeUtils.convertValue(Integer.TYPE, Long.valueOf("10")));
assertEquals((int) 10, (int) TypeUtils.convertValue(Integer.TYPE, Float.valueOf("10")));
assertEquals((int) 10, (int) TypeUtils.convertValue(Integer.TYPE, Double.valueOf("10")));
assertEquals((int) 10, (int) TypeUtils.convertValue(Integer.TYPE, new BigInteger("10")));
assertEquals((int) 10, (int) TypeUtils.convertValue(Integer.TYPE, new BigDecimal("10")));
}
@Test
public void convertNumbersIntoWrapperInteger() {
assertEquals(Integer.valueOf("10"), TypeUtils.convertValue(Integer.class, Byte.valueOf("10")));
assertEquals(Integer.valueOf("10"), TypeUtils.convertValue(Integer.class, Short.valueOf("10")));
assertEquals(Integer.valueOf("10"), TypeUtils.convertValue(Integer.class, Integer.valueOf("10")));
assertEquals(Integer.valueOf("10"), TypeUtils.convertValue(Integer.class, Long.valueOf("10")));
assertEquals(Integer.valueOf("10"), TypeUtils.convertValue(Integer.class, Float.valueOf("10")));
assertEquals(Integer.valueOf("10"), TypeUtils.convertValue(Integer.class, Double.valueOf("10")));
assertEquals(Integer.valueOf("10"), TypeUtils.convertValue(Integer.class, new BigInteger("10")));
assertEquals(Integer.valueOf("10"), TypeUtils.convertValue(Integer.class, new BigDecimal("10")));
}
@Test
public void convertNumbersIntoPrimitiveLong() {
assertEquals((long) 10, (long) TypeUtils.convertValue(Long.TYPE, Byte.valueOf("10")));
assertEquals((long) 10, (long) TypeUtils.convertValue(Long.TYPE, Short.valueOf("10")));
assertEquals((long) 10, (long) TypeUtils.convertValue(Long.TYPE, Integer.valueOf("10")));
assertEquals((long) 10, (long) TypeUtils.convertValue(Long.TYPE, Long.valueOf("10")));
assertEquals((long) 10, (long) TypeUtils.convertValue(Long.TYPE, Float.valueOf("10")));
assertEquals((long) 10, (long) TypeUtils.convertValue(Long.TYPE, Double.valueOf("10")));
assertEquals((long) 10, (long) TypeUtils.convertValue(Long.TYPE, new BigInteger("10")));
assertEquals((long) 10, (long) TypeUtils.convertValue(Long.TYPE, new BigDecimal("10")));
}
@Test
public void convertNumbersIntoWrapperLong() {
assertEquals(Long.valueOf("10"), TypeUtils.convertValue(Long.class, Byte.valueOf("10")));
assertEquals(Long.valueOf("10"), TypeUtils.convertValue(Long.class, Short.valueOf("10")));
assertEquals(Long.valueOf("10"), TypeUtils.convertValue(Long.class, Integer.valueOf("10")));
assertEquals(Long.valueOf("10"), TypeUtils.convertValue(Long.class, Long.valueOf("10")));
assertEquals(Long.valueOf("10"), TypeUtils.convertValue(Long.class, Float.valueOf("10")));
assertEquals(Long.valueOf("10"), TypeUtils.convertValue(Long.class, Double.valueOf("10")));
assertEquals(Long.valueOf("10"), TypeUtils.convertValue(Long.class, new BigInteger("10")));
assertEquals(Long.valueOf("10"), TypeUtils.convertValue(Long.class, new BigDecimal("10")));
}
@Test
public void convertNumbersIntoPrimitiveFloat() {
assertEquals((float) 10, (float) TypeUtils.convertValue(Float.TYPE, Byte.valueOf("10")), 0);
assertEquals((float) 10, (float) TypeUtils.convertValue(Float.TYPE, Short.valueOf("10")), 0);
assertEquals((float) 10, (float) TypeUtils.convertValue(Float.TYPE, Integer.valueOf("10")), 0);
assertEquals((float) 10, (float) TypeUtils.convertValue(Float.TYPE, Long.valueOf("10")), 0);
assertEquals((float) 10, (float) TypeUtils.convertValue(Float.TYPE, Float.valueOf("10")), 0);
assertEquals((float) 10, (float) TypeUtils.convertValue(Float.TYPE, Double.valueOf("10")), 0);
assertEquals((float) 10, (float) TypeUtils.convertValue(Float.TYPE, new BigInteger("10")), 0);
assertEquals((float) 10, (float) TypeUtils.convertValue(Float.TYPE, new BigDecimal("10")), 0);
}
@Test
public void convertNumbersIntoWrapperFloat() {
assertEquals(Float.valueOf("10"), TypeUtils.convertValue(Float.class, Byte.valueOf("10")));
assertEquals(Float.valueOf("10"), TypeUtils.convertValue(Float.class, Short.valueOf("10")));
assertEquals(Float.valueOf("10"), TypeUtils.convertValue(Float.class, Integer.valueOf("10")));
assertEquals(Float.valueOf("10"), TypeUtils.convertValue(Float.class, Long.valueOf("10")));
assertEquals(Float.valueOf("10"), TypeUtils.convertValue(Float.class, Float.valueOf("10")));
assertEquals(Float.valueOf("10"), TypeUtils.convertValue(Float.class, Double.valueOf("10")));
assertEquals(Float.valueOf("10"), TypeUtils.convertValue(Float.class, new BigInteger("10")));
assertEquals(Float.valueOf("10"), TypeUtils.convertValue(Float.class, new BigDecimal("10")));
}
@Test
public void convertNumbersIntoPrimitiveDouble() {
assertEquals((double) 10, (double) TypeUtils.convertValue(Double.TYPE, Byte.valueOf("10")), 0);
assertEquals((double) 10, (double) TypeUtils.convertValue(Double.TYPE, Short.valueOf("10")), 0);
assertEquals((double) 10, (double) TypeUtils.convertValue(Double.TYPE, Integer.valueOf("10")), 0);
assertEquals((double) 10, (double) TypeUtils.convertValue(Double.TYPE, Long.valueOf("10")), 0);
assertEquals((double) 10, (double) TypeUtils.convertValue(Double.TYPE, Float.valueOf("10")), 0);
assertEquals((double) 10, (double) TypeUtils.convertValue(Double.TYPE, Double.valueOf("10")), 0);
assertEquals((double) 10, (double) TypeUtils.convertValue(Double.TYPE, new BigInteger("10")), 0);
assertEquals((double) 10, (double) TypeUtils.convertValue(Double.TYPE, new BigDecimal("10")), 0);
}
@Test
public void convertNumbersIntoWrapperDouble() {
assertEquals(Double.valueOf("10"), TypeUtils.convertValue(Double.class, Byte.valueOf("10")));
assertEquals(Double.valueOf("10"), TypeUtils.convertValue(Double.class, Short.valueOf("10")));
assertEquals(Double.valueOf("10"), TypeUtils.convertValue(Double.class, Integer.valueOf("10")));
assertEquals(Double.valueOf("10"), TypeUtils.convertValue(Double.class, Long.valueOf("10")));
assertEquals(Double.valueOf("10"), TypeUtils.convertValue(Double.class, Float.valueOf("10")));
assertEquals(Double.valueOf("10"), TypeUtils.convertValue(Double.class, Double.valueOf("10")));
assertEquals(Double.valueOf("10"), TypeUtils.convertValue(Double.class, new BigInteger("10")));
assertEquals(Double.valueOf("10"), TypeUtils.convertValue(Double.class, new BigDecimal("10")));
}
@Test
public void convertNumbersIntoWrapperBigInteger() {
assertEquals(BigInteger.valueOf(10L), TypeUtils.convertValue(BigInteger.class, Byte.valueOf("10")));
assertEquals(BigInteger.valueOf(10L), TypeUtils.convertValue(BigInteger.class, Short.valueOf("10")));
assertEquals(BigInteger.valueOf(10L), TypeUtils.convertValue(BigInteger.class, Integer.valueOf("10")));
assertEquals(BigInteger.valueOf(10L), TypeUtils.convertValue(BigInteger.class, Long.valueOf("10")));
assertEquals(BigInteger.valueOf(10L), TypeUtils.convertValue(BigInteger.class, Float.valueOf("10")));
assertEquals(BigInteger.valueOf(10L), TypeUtils.convertValue(BigInteger.class, Double.valueOf("10")));
assertEquals(BigInteger.valueOf(10L), TypeUtils.convertValue(BigInteger.class, new BigInteger("10")));
assertEquals(BigInteger.valueOf(10L), TypeUtils.convertValue(BigInteger.class, new BigDecimal("10")));
}
@Test
public void convertNumbersIntoWrapperBigDecimal() {
assertEquals(BigDecimal.valueOf(10d), TypeUtils.convertValue(BigDecimal.class, Byte.valueOf("10")));
assertEquals(BigDecimal.valueOf(10d), TypeUtils.convertValue(BigDecimal.class, Short.valueOf("10")));
assertEquals(BigDecimal.valueOf(10d), TypeUtils.convertValue(BigDecimal.class, Integer.valueOf("10")));
assertEquals(BigDecimal.valueOf(10d), TypeUtils.convertValue(BigDecimal.class, Long.valueOf("10")));
assertEquals(BigDecimal.valueOf(10d), TypeUtils.convertValue(BigDecimal.class, Float.valueOf("10")));
assertEquals(BigDecimal.valueOf(10d), TypeUtils.convertValue(BigDecimal.class, Double.valueOf("10")));
assertEquals(BigDecimal.valueOf(10d), TypeUtils.convertValue(BigDecimal.class, new BigInteger("10")));
assertEquals(BigDecimal.valueOf(10d), TypeUtils.convertValue(BigDecimal.class, new BigDecimal("10.0")));
}
@Test
public void castToBoolean() {
assertTrue(TypeUtils.castToBoolean(Boolean.TRUE));
assertTrue(TypeUtils.castToBoolean("TRUE"));
assertTrue(TypeUtils.castToBoolean("true"));
assertFalse(TypeUtils.castToBoolean(Boolean.FALSE));
assertFalse(TypeUtils.castToBoolean("FALSE"));
assertFalse(TypeUtils.castToBoolean("false"));
assertTrue(TypeUtils.castToBoolean(null, true));
assertFalse(TypeUtils.castToBoolean(null, false));
assertTrue(TypeUtils.castToBoolean(true, true));
assertTrue(TypeUtils.castToBoolean(true, false));
}
@Test
public void castToChar() {
assertEquals('A', TypeUtils.castToChar(Character.valueOf('A')));
assertEquals('A', TypeUtils.castToChar("AB"));
assertEquals('A', TypeUtils.castToChar("AB", 'B'));
assertEquals('B', TypeUtils.castToChar(null, 'B'));
}
@Test
public void castToByte() {
assertEquals((byte) 10, TypeUtils.castToByte(Byte.valueOf("10")));
assertEquals((byte) 10, TypeUtils.castToByte(Integer.valueOf("10")));
assertEquals((byte) 10, TypeUtils.castToByte("10"));
assertEquals((byte) 10, TypeUtils.castToByte("10", (byte) 10));
assertEquals((byte) 10, TypeUtils.castToByte(null, (byte) 10));
}
@Test
public void castToShort() {
assertEquals((short) 10, TypeUtils.castToShort(Short.valueOf("10")));
assertEquals((short) 10, TypeUtils.castToShort(Integer.valueOf("10")));
assertEquals((short) 10, TypeUtils.castToShort("10"));
assertEquals((short) 10, TypeUtils.castToShort("10", (short) 10));
assertEquals((short) 10, TypeUtils.castToShort(null, (short) 10));
}
@Test
public void castToInt() {
assertEquals(10, TypeUtils.castToInt(Short.valueOf("10")));
assertEquals(10, TypeUtils.castToInt(Integer.valueOf("10")));
assertEquals(10, TypeUtils.castToInt("10"));
assertEquals(10, TypeUtils.castToInt("10", 10));
assertEquals(10, TypeUtils.castToInt(null, 10));
}
@Test
public void castToLong() {
assertEquals(10L, TypeUtils.castToLong(Integer.valueOf("10")));
assertEquals(10L, TypeUtils.castToLong(Long.valueOf("10")));
assertEquals(10L, TypeUtils.castToLong("10"));
assertEquals(10L, TypeUtils.castToLong("10", 10L));
assertEquals(10L, TypeUtils.castToLong(null, 10L));
}
@Test
public void castToFloat() {
assertEquals(10f, TypeUtils.castToFloat(Integer.valueOf("10")), 0f);
assertEquals(10f, TypeUtils.castToFloat(Float.valueOf("10")), 0f);
assertEquals(10f, TypeUtils.castToFloat("10"), 0f);
assertEquals(10f, TypeUtils.castToFloat("10", 10f), 0f);
assertEquals(10f, TypeUtils.castToFloat(null, 10f), 0f);
}
@Test
public void castToDouble() {
assertEquals(10d, TypeUtils.castToDouble(Integer.valueOf("10")), 0d);
assertEquals(10d, TypeUtils.castToDouble(Double.valueOf("10")), 0d);
assertEquals(10d, TypeUtils.castToDouble("10"), 0d);
assertEquals(10d, TypeUtils.castToDouble("10", 10d), 0d);
assertEquals(10d, TypeUtils.castToDouble(null, 10d), 0d);
}
@Test
public void castToBigInteger() {
assertEquals(BigInteger.valueOf(10), TypeUtils.castToBigInteger(Short.valueOf("10")));
assertEquals(BigInteger.valueOf(10), TypeUtils.castToBigInteger(BigInteger.valueOf(10)));
assertEquals(BigInteger.valueOf(10), TypeUtils.castToBigInteger("10"));
assertEquals(BigInteger.valueOf(10), TypeUtils.castToBigInteger("10", BigInteger.valueOf(10)));
assertEquals(BigInteger.valueOf(10), TypeUtils.castToBigInteger(null, BigInteger.valueOf(10)));
}
@Test
public void castToBigDecimal() {
assertEquals(BigDecimal.valueOf(10), TypeUtils.castToBigDecimal(Short.valueOf("10")));
assertEquals(BigDecimal.valueOf(10), TypeUtils.castToBigDecimal(BigDecimal.valueOf(10)));
assertEquals(BigDecimal.valueOf(10), TypeUtils.castToBigDecimal("10"));
assertEquals(BigDecimal.valueOf(10), TypeUtils.castToBigDecimal("10", BigDecimal.valueOf(10)));
assertEquals(BigDecimal.valueOf(10), TypeUtils.castToBigDecimal(null, BigDecimal.valueOf(10)));
}
}