package org.jboss.resteasy.test.util; import org.jboss.resteasy.util.TypeConverter; import org.junit.Assert; import org.junit.Test; import java.util.Date; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; /** * @tpSubChapter Util tests * @tpChapter Unit tests * @tpTestCaseDetails Test for {@link org.jboss.resteasy.util.TypeConverter#getType(Class, String)}. * @tpSince RESTEasy 3.0.16 */ public class TypeConverterTest { private static final String CONVERSION_ERROR = "Wrong type of converted value"; /** * @tpTestDetails Boolean conversion. * @tpSince RESTEasy 3.0.16 */ @Test public void testBooleanTypes() { assertTrue(CONVERSION_ERROR, TypeConverter.getType(Boolean.class, "T")); assertTrue(CONVERSION_ERROR, TypeConverter.getType(Boolean.class, "t")); assertTrue(CONVERSION_ERROR, TypeConverter.getType(Boolean.class, "Y")); assertTrue(CONVERSION_ERROR, TypeConverter.getType(Boolean.class, "y")); assertTrue(CONVERSION_ERROR, TypeConverter.getType(Boolean.class, "Yes")); assertTrue(CONVERSION_ERROR, TypeConverter.getType(Boolean.class, "YES")); assertTrue(CONVERSION_ERROR, TypeConverter.getType(Boolean.class, "TRUE")); assertTrue(CONVERSION_ERROR, TypeConverter.getType(Boolean.class, "true")); assertFalse(CONVERSION_ERROR, TypeConverter.getType(Boolean.class, "F")); assertFalse(CONVERSION_ERROR, TypeConverter.getType(Boolean.class, "f")); assertFalse(CONVERSION_ERROR, TypeConverter.getType(Boolean.class, "N")); assertFalse(CONVERSION_ERROR, TypeConverter.getType(Boolean.class, "n")); assertFalse(CONVERSION_ERROR, TypeConverter.getType(Boolean.class, "No")); assertFalse(CONVERSION_ERROR, TypeConverter.getType(Boolean.class, "No")); assertFalse(CONVERSION_ERROR, TypeConverter.getType(Boolean.class, "FALSE")); assertFalse(CONVERSION_ERROR, TypeConverter.getType(Boolean.class, "False")); } /** * @tpTestDetails Integer and int conversion. * @tpSince RESTEasy 3.0.16 */ @Test public void testIntegerTypes() { assertEquals(CONVERSION_ERROR, 11, (int) TypeConverter.getType(int.class, "11")); assertEquals(CONVERSION_ERROR, 11, (int) TypeConverter.getType(Integer.class, "11")); } /** * @tpTestDetails Double conversion. * @tpSince RESTEasy 3.0.16 */ @Test public void testDoubleTypes() { assertEquals(CONVERSION_ERROR, 20.15d, TypeConverter.getType(double.class, "20.15"), 0); assertEquals(CONVERSION_ERROR, 20.15d, TypeConverter.getType(Double.class, "20.15"), 0); } /** * @tpTestDetails Float conversion. * @tpSince RESTEasy 3.0.16 */ @Test public void testFloatTypes() { assertEquals(CONVERSION_ERROR, 23.44f, TypeConverter.getType(float.class, "23.44"), 0); assertEquals(CONVERSION_ERROR, 23.44f, TypeConverter.getType(Float.class, "23.44"), 0); } /** * @tpTestDetails Long conversion. * @tpSince RESTEasy 3.0.16 */ @Test public void testLongTypes() { assertEquals(CONVERSION_ERROR, 23L, (long) TypeConverter.getType(long.class, "23")); assertEquals(CONVERSION_ERROR, 23L, (long) TypeConverter.getType(Long.class, "23")); } /** * @tpTestDetails character conversion. */ @Test public void testCharacterTypes() { assertEquals(CONVERSION_ERROR, 'A', TypeConverter.getType(Character.class, "A").charValue()); assertEquals(CONVERSION_ERROR, 'A', (char)TypeConverter.getType(char.class, "A")); } /** * @tpTestDetails Date conversion. * @tpSince RESTEasy 3.0.16 */ @Test public void testDate() { try { TypeConverter.getType(Date.class, "07/04/2008"); Assert.fail("Exception was excepted."); } catch (IllegalArgumentException e) { // ok } } }