package com.vaadin.tests.data.converter;
import org.junit.Assert;
import org.junit.Test;
import com.vaadin.data.Result;
import com.vaadin.data.ValueContext;
import com.vaadin.data.converter.StringToLongConverter;
public class StringToLongConverterTest extends AbstractStringConverterTest {
@Override
protected StringToLongConverter getConverter() {
return new StringToLongConverter(getErrorMessage());
}
@Override
@Test
public void testEmptyStringConversion() {
assertValue(null,
getConverter().convertToModel("", new ValueContext()));
}
@Test
public void testValueConversion() {
assertValue(Long.valueOf(10),
getConverter().convertToModel("10", new ValueContext()));
}
@Test
public void testExtremeLongValueConversion() {
Result<Long> l = getConverter().convertToModel("9223372036854775807",
new ValueContext());
assertValue(Long.MAX_VALUE, l);
l = getConverter().convertToModel("-9223372036854775808",
new ValueContext());
assertValue(Long.MIN_VALUE, l);
}
@Test
public void testOutOfBoundsValueConversion() {
// Long.MAX_VALUE+1 is converted to Long.MAX_VALUE
Result<Long> l = getConverter().convertToModel("9223372036854775808",
new ValueContext());
assertValue(Long.MAX_VALUE, l);
// Long.MIN_VALUE-1 is converted to Long.MIN_VALUE
l = getConverter().convertToModel("-9223372036854775809",
new ValueContext());
assertValue(Long.MIN_VALUE, l);
}
@Test
public void customEmptyValue() {
StringToLongConverter converter = new StringToLongConverter((long) 0,
getErrorMessage());
assertValue((long) 0, converter.convertToModel("", new ValueContext()));
Assert.assertEquals("0",
converter.convertToPresentation((long) 0, new ValueContext()));
}
}