package com.vaadin.v7.tests.data.converter;
import java.util.Locale;
import org.junit.Assert;
import org.junit.Test;
import com.vaadin.v7.data.util.converter.Converter;
import com.vaadin.v7.data.util.converter.ReverseConverter;
import com.vaadin.v7.data.util.converter.StringToLongConverter;
public class StringToLongConverterTest {
StringToLongConverter converter = new StringToLongConverter();
Converter<Long, String> reverseConverter = new ReverseConverter<Long, String>(
converter);
@Test
public void testNullConversion() {
Assert.assertEquals(null,
converter.convertToModel(null, Long.class, null));
}
@Test
public void testReverseNullConversion() {
Assert.assertEquals(null,
reverseConverter.convertToModel(null, String.class, null));
}
@Test
public void testEmptyStringConversion() {
Assert.assertEquals(null,
converter.convertToModel("", Long.class, null));
}
@Test
public void testValueConversion() {
Assert.assertEquals(Long.valueOf(10),
converter.convertToModel("10", Long.class, null));
}
@Test
public void testReverseValueConversion() {
Assert.assertEquals(
reverseConverter.convertToModel(10L, String.class, null), "10");
}
@Test
public void testExtremeLongValueConversion() {
long l = converter.convertToModel("9223372036854775807", Long.class,
null);
Assert.assertEquals(Long.MAX_VALUE, l);
l = converter.convertToModel("-9223372036854775808", Long.class, null);
Assert.assertEquals(Long.MIN_VALUE, l);
}
@Test
public void testExtremeReverseLongValueConversion() {
String str = reverseConverter.convertToModel(Long.MAX_VALUE,
String.class, Locale.ENGLISH);
Assert.assertEquals("9,223,372,036,854,775,807", str);
str = reverseConverter.convertToModel(Long.MIN_VALUE, String.class,
Locale.ENGLISH);
Assert.assertEquals("-9,223,372,036,854,775,808", str);
}
@Test
public void testOutOfBoundsValueConversion() {
// Long.MAX_VALUE+1 is converted to Long.MAX_VALUE
long l = converter.convertToModel("9223372036854775808", Long.class,
null);
Assert.assertEquals(Long.MAX_VALUE, l);
// Long.MIN_VALUE-1 is converted to Long.MIN_VALUE
l = converter.convertToModel("-9223372036854775809", Long.class, null);
Assert.assertEquals(Long.MIN_VALUE, l);
}
}