/* * ************************************************************************************* * Copyright (C) 2008 EsperTech, Inc. All rights reserved. * * http://esper.codehaus.org * * http://www.espertech.com * * ---------------------------------------------------------------------------------- * * The software in this package is published under the terms of the GPL license * * a copy of which has been included with this distribution in the license.txt file. * * ************************************************************************************* */ package com.espertech.esper.util; import junit.framework.TestCase; import java.math.BigInteger; import java.math.BigDecimal; public class TestSimpleNumberCoercion extends TestCase { public void testGetCoercer() { assertEquals(1d, SimpleNumberCoercerFactory.getCoercer(null, Double.class).coerceBoxed(1d)); assertEquals(1d, SimpleNumberCoercerFactory.getCoercer(Double.class, Double.class).coerceBoxed(1d)); assertEquals(5d, SimpleNumberCoercerFactory.getCoercer(Integer.class, Double.class).coerceBoxed(5)); assertEquals(6d, SimpleNumberCoercerFactory.getCoercer(Byte.class, Double.class).coerceBoxed((byte) 6)); assertEquals(3f, SimpleNumberCoercerFactory.getCoercer(Long.class, Float.class).coerceBoxed((long) 3)); assertEquals((short) 2, SimpleNumberCoercerFactory.getCoercer(Long.class, Short.class).coerceBoxed((long) 2)); assertEquals(4, SimpleNumberCoercerFactory.getCoercer(Long.class, Integer.class).coerceBoxed((long) 4)); assertEquals((byte) 5, SimpleNumberCoercerFactory.getCoercer(Long.class, Byte.class).coerceBoxed((long) 5)); assertEquals(8l, SimpleNumberCoercerFactory.getCoercer(Long.class, Long.class).coerceBoxed((long) 8)); assertEquals(BigInteger.valueOf(8), SimpleNumberCoercerFactory.getCoercer(int.class, BigInteger.class).coerceBoxed(8)); assertEquals(new BigDecimal(9), SimpleNumberCoercerFactory.getCoercer(int.class, BigDecimal.class).coerceBoxed(9)); assertEquals(new BigDecimal(9.0d), SimpleNumberCoercerFactory.getCoercer(double.class, BigDecimal.class).coerceBoxed(9.0)); assertEquals(new BigDecimal(9.0d), SimpleNumberCoercerFactory.getCoercerBigDecimal(double.class).coerceBoxedBigDec(9.0)); assertEquals(new BigDecimal(9), SimpleNumberCoercerFactory.getCoercerBigDecimal(long.class).coerceBoxedBigDec(9)); assertEquals(BigDecimal.TEN, SimpleNumberCoercerFactory.getCoercerBigDecimal(BigDecimal.class).coerceBoxedBigDec(BigDecimal.TEN)); assertEquals(BigInteger.valueOf(9), SimpleNumberCoercerFactory.getCoercerBigInteger(long.class).coerceBoxedBigInt(9)); assertEquals(BigInteger.TEN, SimpleNumberCoercerFactory.getCoercerBigInteger(BigInteger.class).coerceBoxedBigInt(BigInteger.TEN)); try { JavaClassHelper.coerceBoxed(10, int.class); fail(); } catch (IllegalArgumentException ex) { // Expected } } }