/*
* Copyright 2005-2006 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package org.strecks.converter.internal;
import java.lang.reflect.Method;
import org.strecks.converter.Converter;
import org.strecks.converter.DatePatternConverter;
import org.strecks.converter.internal.impl.BeanWithReorderedConverters;
import org.strecks.converter.internal.impl.BeanWithTwoConverters;
import org.strecks.converter.internal.impl.FormWithDateConverter;
import org.strecks.exceptions.ApplicationConfigurationException;
import org.testng.Assert;
import org.testng.annotations.Test;
/**
* @author Phil Zoio
*/
public class TestConverterReader
{
@Test
public void testConverterReader() throws Exception
{
Class c = FormWithDateConverter.class;
Method method = c.getMethod("getStartDate");
ConverterReader converterReader = new ConverterReader();
Converter converter = converterReader.readConverter(method);
assert converter instanceof DatePatternConverter;
}
@Test
public void testReorderedConverter() throws Exception
{
Class c = BeanWithReorderedConverters.class;
Method method = c.getMethod("getDate");
ConverterReader converterReader = new ConverterReader();
Converter converter = converterReader.readConverter(method);
assert converter instanceof DatePatternConverter;
}
@Test
public void testDuplicatedConverterReader() throws Exception
{
try
{
Class c = BeanWithTwoConverters.class;
Method method = c.getMethod("getDate");
ConverterReader converterReader = new ConverterReader();
converterReader.readConverter(method);
}
catch (ApplicationConfigurationException e)
{
Assert.assertEquals(e.getMessage(), "Only one converter annotation may be placed in method getDate() "
+ "in class org.strecks.converter.internal.impl.BeanWithTwoConverters");
}
}
}