/** * Create the ConversionService instance returned by this factory bean. * <p>Creates a simple {@link GenericConversionService} instance by default. * Subclasses may override to customize the ConversionService instance that * gets created. */ protected GenericConversionService createConversionService() { return new DefaultConversionService(); }
public BeanFactoryTypeConverter() { synchronized (this) { if (defaultConversionService == null) { defaultConversionService = new DefaultConversionService(); } } this.conversionService = defaultConversionService; }
@SuppressWarnings("AssertEqualsBetweenInconvertibleTypes") @Test public void setPropertyIntermediateListIsNullWithAutoGrow() { Foo target = new Foo(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.setConversionService(new DefaultConversionService()); accessor.setAutoGrowNestedPaths(true); Map<String, String> map = new HashMap<>(); map.put("favoriteNumber", "9"); accessor.setPropertyValue("list[0]", map); assertEquals(map, target.list.get(0)); }
@Test public void resolveOptionalHeaderAsEmpty() throws Exception { GenericApplicationContext cxt = new GenericApplicationContext(); cxt.refresh(); HeaderMethodArgumentResolver resolver = new HeaderMethodArgumentResolver(new DefaultConversionService(), cxt.getBeanFactory()); Message<String> message = MessageBuilder.withPayload("foo").build(); Object result = resolver.resolveArgument(paramOptional, message); assertEquals(Optional.empty(), result); }
@Before public void setup() { ConversionService conversionService = new DefaultConversionService(); this.converter = new ObjectToStringHttpMessageConverter(conversionService); this.servletResponse = new MockHttpServletResponse(); this.response = new ServletServerHttpResponse(this.servletResponse); }
@Before public void setup() throws Exception { this.resolver = new DestinationVariableMethodArgumentResolver(new DefaultConversionService()); Method method = getClass().getDeclaredMethod("handleMessage", String.class, String.class, String.class); this.paramAnnotated = new MethodParameter(method, 0); this.paramAnnotatedValue = new MethodParameter(method, 1); this.paramNotAnnotated = new MethodParameter(method, 2); this.paramAnnotated.initParameterNameDiscovery(new DefaultParameterNameDiscoverer()); GenericTypeResolver.resolveParameterType(this.paramAnnotated, DestinationVariableMethodArgumentResolver.class); this.paramAnnotatedValue.initParameterNameDiscovery(new DefaultParameterNameDiscoverer()); GenericTypeResolver.resolveParameterType(this.paramAnnotatedValue, DestinationVariableMethodArgumentResolver.class); }
@Test public void resolveOptionalHeaderWithValue() throws Exception { GenericApplicationContext cxt = new GenericApplicationContext(); cxt.refresh(); HeaderMethodArgumentResolver resolver = new HeaderMethodArgumentResolver(new DefaultConversionService(), cxt.getBeanFactory()); Message<String> message = MessageBuilder.withPayload("foo").setHeader("foo", "bar").build(); Object result = resolver.resolveArgument(paramOptional, message); assertEquals(Optional.of("bar"), result); }
@Test public void getPropertyIntermediateMapEntryIsNullWithAutoGrow() { Foo target = new Foo(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.setConversionService(new DefaultConversionService()); accessor.setAutoGrowNestedPaths(true); accessor.setPropertyValue("listOfMaps[0]['luckyNumber']", "9"); assertEquals("9", target.listOfMaps.get(0).get("luckyNumber")); }
@Test public void wrapEmptyWithOptional() throws Exception { ConfigurableWebBindingInitializer initializer = new ConfigurableWebBindingInitializer(); initializer.setConversionService(new DefaultConversionService()); WebDataBinderFactory binderFactory = new DefaultDataBinderFactory(initializer); assertEquals(Optional.empty(), resolver.resolveArgument(paramOptional, mavContainer, webRequest, binderFactory)); }
@Test public void testStandardEnumSetWithMultipleValues() { GenericBean<?> gb = new GenericBean<>(); BeanWrapper bw = new BeanWrapperImpl(gb); bw.setConversionService(new DefaultConversionService()); assertNull(gb.getStandardEnumSet()); bw.setPropertyValue("standardEnumSet", new String[] {"VALUE_1", "VALUE_2"}); assertEquals(2, gb.getStandardEnumSet().size()); assertTrue(gb.getStandardEnumSet().contains(CustomEnum.VALUE_1)); assertTrue(gb.getStandardEnumSet().contains(CustomEnum.VALUE_2)); }
@Before public void setup() { this.conversionService = new DefaultConversionService(); this.conversionService.addConverter(new ByteArrayToOtherTypeConverter()); this.conversionService.addConverter(new OtherTypeToByteArrayConverter()); }
@Test public void defaultCharsetModified() throws IOException { ConversionService cs = new DefaultConversionService(); ObjectToStringHttpMessageConverter converter = new ObjectToStringHttpMessageConverter(cs, StandardCharsets.UTF_16); converter.write((byte) 31, null, this.response); assertEquals("UTF-16", this.servletResponse.getCharacterEncoding()); }
@Test @SuppressWarnings("rawtypes") public void missingOptionalParamList() throws Exception { ConfigurableWebBindingInitializer initializer = new ConfigurableWebBindingInitializer(); initializer.setConversionService(new DefaultConversionService()); WebDataBinderFactory binderFactory = new DefaultDataBinderFactory(initializer); MethodParameter param = this.testMethod.annotPresent(RequestParam.class).arg(Optional.class, List.class); Object result = resolver.resolveArgument(param, null, webRequest, binderFactory); assertEquals(Optional.empty(), result); result = resolver.resolveArgument(param, null, webRequest, binderFactory); assertEquals(Optional.class, result.getClass()); assertFalse(((Optional) result).isPresent()); }
@Test @SuppressWarnings("rawtypes") public void missingOptionalParamValue() throws Exception { ConfigurableWebBindingInitializer initializer = new ConfigurableWebBindingInitializer(); initializer.setConversionService(new DefaultConversionService()); WebDataBinderFactory binderFactory = new DefaultDataBinderFactory(initializer); MethodParameter param = this.testMethod.annotPresent(RequestParam.class).arg(Optional.class, Integer.class); Object result = resolver.resolveArgument(param, null, webRequest, binderFactory); assertEquals(Optional.empty(), result); result = resolver.resolveArgument(param, null, webRequest, binderFactory); assertEquals(Optional.class, result.getClass()); assertFalse(((Optional) result).isPresent()); }
@Bean public ConversionService webSocketConversionService() { GenericConversionService conversionService = new DefaultConversionService(); conversionService.addConverter(new MyTypeToStringConverter()); conversionService.addConverter(new MyTypeToBytesConverter()); conversionService.addConverter(new StringToMyTypeConverter()); conversionService.addConverter(new BytesToMyTypeConverter()); return conversionService; }
@Test public void optionalMultipartFileWithoutMultipartRequest() throws Exception { ConfigurableWebBindingInitializer initializer = new ConfigurableWebBindingInitializer(); initializer.setConversionService(new DefaultConversionService()); WebDataBinderFactory binderFactory = new DefaultDataBinderFactory(initializer); MethodParameter param = this.testMethod.annotPresent(RequestParam.class).arg(Optional.class, MultipartFile.class); Object actual = resolver.resolveArgument(param, null, webRequest, binderFactory); assertEquals(Optional.empty(), actual); }
@Test public void withConversionService() { ConversionService conversionService = new DefaultConversionService(); assertTrue(conversionService.canConvert(String.class, MimeType.class)); MimeType mimeType = MimeType.valueOf("application/xml"); assertEquals(mimeType, conversionService.convert("application/xml", MimeType.class)); }
@Test public void testWithConversionService() { ConversionService conversionService = new DefaultConversionService(); assertTrue(conversionService.canConvert(String.class, MediaType.class)); MediaType mediaType = MediaType.parseMediaType("application/xml"); assertEquals(mediaType, conversionService.convert("application/xml", MediaType.class)); }
@Test public void missingOptionalMultipartFile() throws Exception { ConfigurableWebBindingInitializer initializer = new ConfigurableWebBindingInitializer(); initializer.setConversionService(new DefaultConversionService()); WebDataBinderFactory binderFactory = new DefaultDataBinderFactory(initializer); request.setMethod("POST"); request.setContentType("multipart/form-data"); MethodParameter param = this.testMethod.annotPresent(RequestParam.class).arg(Optional.class, MultipartFile.class); Object actual = resolver.resolveArgument(param, null, webRequest, binderFactory); assertEquals(Optional.empty(), actual); }
@Test public void testListValidation() { LocalValidatorFactoryBean validator = new LocalValidatorFactoryBean(); validator.afterPropertiesSet(); ListContainer listContainer = new ListContainer(); listContainer.addString("A"); listContainer.addString("X"); BeanPropertyBindingResult errors = new BeanPropertyBindingResult(listContainer, "listContainer"); errors.initConversion(new DefaultConversionService()); validator.validate(listContainer, errors); assertEquals("X", errors.getFieldValue("list[1]")); }