blob: 4b2f4c3cfc57226c4dad837915bf2ecdd065ad53 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
******************************************************************************/
package org.eclipse.core.tests.databinding.conversion;
import java.math.BigInteger;
import junit.framework.TestCase;
import org.eclipse.core.databinding.conversion.NumberToStringConverter;
import com.ibm.icu.text.NumberFormat;
/**
* @since 1.1
*/
public class NumberToStringConverterTest extends TestCase {
private NumberFormat numberFormat;
private NumberFormat integerFormat;
/*
* (non-Javadoc)
*
* @see junit.framework.TestCase#setUp()
*/
protected void setUp() throws Exception {
super.setUp();
numberFormat = NumberFormat.getInstance();
integerFormat = NumberFormat.getIntegerInstance();
}
public void testFromTypes() throws Exception {
assertEquals("Integer.class", Integer.class, NumberToStringConverter
.fromInteger(false).getFromType());
assertEquals("Integer.TYPE", Integer.TYPE, NumberToStringConverter
.fromInteger(true).getFromType());
assertEquals("Double.class", Double.class, NumberToStringConverter
.fromDouble(false).getFromType());
assertEquals("Double.TYPE", Double.TYPE, NumberToStringConverter
.fromDouble(true).getFromType());
assertEquals("Long.class", Long.class, NumberToStringConverter
.fromLong(false).getFromType());
assertEquals("Long.TYPE", Long.TYPE, NumberToStringConverter.fromLong(
true).getFromType());
assertEquals("Float.class", Float.class, NumberToStringConverter
.fromFloat(false).getFromType());
assertEquals("Float.TYPE", Float.TYPE, NumberToStringConverter
.fromFloat(true).getFromType());
assertEquals("BigInteger.class", BigInteger.class,
NumberToStringConverter.fromBigInteger().getFromType());
}
public void testToTypeIsStringClass() throws Exception {
assertEquals(String.class, NumberToStringConverter.fromInteger(false)
.getToType());
}
public void testConvertIntegerToString() throws Exception {
Integer input = new Integer(1000);
String expected = integerFormat.format(input.longValue());
NumberToStringConverter converter = NumberToStringConverter
.fromInteger(false);
String result = (String) converter.convert(input);
assertEquals(expected, result);
}
public void testConvertDoubleToString() throws Exception {
Double input = new Double(1000.1d);
String expected = numberFormat.format(input.doubleValue());
NumberToStringConverter converter = NumberToStringConverter
.fromDouble(false);
String result = (String) converter.convert(input);
assertEquals(expected, result);
}
public void testConvertFloatToString() throws Exception {
Float input = new Float(1000.1f);
String expected = numberFormat.format(input.floatValue());
NumberToStringConverter converter = NumberToStringConverter
.fromFloat(false);
String result = (String) converter.convert(input);
assertEquals(expected, result);
}
public void testConvertLongToString() throws Exception {
Long input = new Long(1000l);
String expected = integerFormat.format(input.longValue());
NumberToStringConverter converter = NumberToStringConverter
.fromLong(false);
String result = (String) converter.convert(input);
assertEquals(expected, result);
}
public void testConvertBigIntegerToString() throws Exception {
BigInteger input = BigInteger.valueOf(1000);
String expected = integerFormat.format(input);
NumberToStringConverter converter = NumberToStringConverter.fromBigInteger();
String result = (String) converter.convert(input);
assertEquals(expected, result);
}
public void testNullSourceConvertsToEmptyString() throws Exception {
NumberToStringConverter converter = NumberToStringConverter
.fromInteger(false);
assertEquals("", converter.convert(null));
}
}