package com.vaadin.tests.data.converter;
import org.junit.Assert;
import org.junit.Test;
import com.vaadin.data.Converter;
import com.vaadin.data.Result;
import com.vaadin.data.ValueContext;
public abstract class AbstractConverterTest {
@Test
public void testNullConversion() {
assertValue(null,
getConverter().convertToModel(null, new ValueContext()));
}
protected abstract Converter<?, ?> getConverter();
protected <T> void assertValue(T expectedValue, Result<?> result) {
assertValue(null, expectedValue, result);
}
protected <T> void assertValue(String assertMessage, T expectedValue,
Result<?> result) {
Assert.assertNotNull("Result should never be null", result);
Assert.assertFalse("Result is not ok", result.isError());
Assert.assertEquals(expectedValue,
result.getOrThrow(message -> new AssertionError(
assertMessage != null ? assertMessage : message)));
}
protected void assertError(String expectedResultMessage, Result<?> result) {
Assert.assertNotNull("Result should never be null", result);
Assert.assertTrue("Result should be an error", result.isError());
Assert.assertEquals(expectedResultMessage, result.getMessage().get());
}
protected String getErrorMessage() {
return "conversion failed";
}
}