@Test public void createDefaultConversionService() { ConversionServiceFactoryBean factory = new ConversionServiceFactoryBean(); factory.afterPropertiesSet(); ConversionService service = factory.getObject(); assertTrue(service.canConvert(String.class, Integer.class)); }
@Test(expected = IllegalArgumentException.class) public void createDefaultConversionServiceWithInvalidSupplements() { ConversionServiceFactoryBean factory = new ConversionServiceFactoryBean(); Set<Object> converters = new HashSet<Object>(); converters.add("bogus"); factory.setConverters(converters); factory.afterPropertiesSet(); }
@Test public void createDefaultConversionServiceWithSupplements() { ConversionServiceFactoryBean factory = new ConversionServiceFactoryBean(); Set<Object> converters = new HashSet<Object>(); converters.add( new Converter<String, Foo>() { public Foo convert(String source) { return new Foo(); } }); converters.add( new ConverterFactory<String, Bar>() { public <T extends Bar> Converter<String, T> getConverter(Class<T> targetType) { return new Converter<String, T>() { public T convert(String source) { return (T) new Bar(); } }; } }); converters.add( new GenericConverter() { public Set<ConvertiblePair> getConvertibleTypes() { return Collections.singleton(new ConvertiblePair(String.class, Baz.class)); } public Object convert( Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { return new Baz(); } }); factory.setConverters(converters); factory.afterPropertiesSet(); ConversionService service = factory.getObject(); assertTrue(service.canConvert(String.class, Integer.class)); assertTrue(service.canConvert(String.class, Foo.class)); assertTrue(service.canConvert(String.class, Bar.class)); assertTrue(service.canConvert(String.class, Baz.class)); }