package org.strecks.converter.handler;
import org.strecks.bind.handler.impl.TargetBean;
import org.strecks.converter.handler.impl.IntToIntConverter;
import org.strecks.converter.handler.impl.StringToStringConverter;
import org.strecks.exceptions.ApplicationRuntimeException;
import org.testng.Assert;
import org.testng.annotations.Test;
/**
* @author Phil Zoio
*/
public class TestDefaultConversionHandler
{
@Test
public void testOutwardConversion()
{
DefaultConversionHandler handler = new DefaultConversionHandler();
TargetBean bean = new TargetBean();
bean.setStringProperty("2");
Assert.assertEquals(handler.getAndConvertOutwards(bean, "stringProperty", new StringToStringConverter()), "2");
}
@Test
public void testInwardConversion()
{
DefaultConversionHandler handler = new DefaultConversionHandler();
TargetBean bean = new TargetBean();
bean.setStringProperty("2");
Assert.assertEquals(handler.getAndConvertInwards(bean, "stringProperty", new StringToStringConverter()), "2");
}
@Test
public void testInvalidOutwardConversion()
{
try
{
DefaultConversionHandler handler = new DefaultConversionHandler();
TargetBean bean = new TargetBean();
bean.setStringProperty("2");
handler.getAndConvertOutwards(bean, "stringProperty", new IntToIntConverter());
Assert.fail();
}
catch (ApplicationRuntimeException e)
{
Assert
.assertEquals(
e.getMessage(),
"Mismatch between parameterization type of converter: org.strecks.converter.handler.impl.IntToIntConverter((class java.lang.Integer, class java.lang.Integer))), and source type of property being converted: org.strecks.bind.handler.impl.TargetBean, property stringProperty (class java.lang.String)");
}
}
@Test
public void testInvalidInwardConversion()
{
try
{
DefaultConversionHandler handler = new DefaultConversionHandler();
TargetBean bean = new TargetBean();
bean.setStringProperty("2");
handler.getAndConvertInwards(bean, "stringProperty", new IntToIntConverter());
Assert.fail();
}
catch (ApplicationRuntimeException e)
{
Assert
.assertEquals(
e.getMessage(),
"Mismatch between parameterization type of converter: org.strecks.converter.handler.impl.IntToIntConverter((class java.lang.Integer, class java.lang.Integer))), and source type of property being converted: org.strecks.bind.handler.impl.TargetBean, property stringProperty (class java.lang.String)");
}
}
}