11/*
2- * Copyright 2002-2014 the original author or authors.
2+ * Copyright 2002-2015 the original author or authors.
33 *
44 * Licensed under the Apache License, Version 2.0 (the "License");
55 * you may not use this file except in compliance with the License.
@@ -69,7 +69,7 @@ public void testStringToCharacterEmptyString() {
6969 assertEquals (null , conversionService .convert ("" , Character .class ));
7070 }
7171
72- @ Test (expected = ConversionFailedException .class )
72+ @ Test (expected = ConversionFailedException .class )
7373 public void testStringToCharacterInvalidString () {
7474 conversionService .convert ("invalid" , Character .class );
7575 }
@@ -106,7 +106,7 @@ public void testStringToBooleanEmptyString() {
106106 assertEquals (null , conversionService .convert ("" , Boolean .class ));
107107 }
108108
109- @ Test (expected = ConversionFailedException .class )
109+ @ Test (expected = ConversionFailedException .class )
110110 public void testStringToBooleanInvalidString () {
111111 conversionService .convert ("invalid" , Boolean .class );
112112 }
@@ -265,36 +265,11 @@ public void testNumberToNumber() {
265265 assertEquals (Long .valueOf (1 ), conversionService .convert (Integer .valueOf (1 ), Long .class ));
266266 }
267267
268- @ Test (expected = ConversionFailedException .class )
268+ @ Test (expected = ConversionFailedException .class )
269269 public void testNumberToNumberNotSupportedNumber () {
270270 conversionService .convert (Integer .valueOf (1 ), CustomNumber .class );
271271 }
272272
273- @ SuppressWarnings ("serial" )
274- public static class CustomNumber extends Number {
275-
276- @ Override
277- public double doubleValue () {
278- return 0 ;
279- }
280-
281- @ Override
282- public float floatValue () {
283- return 0 ;
284- }
285-
286- @ Override
287- public int intValue () {
288- return 0 ;
289- }
290-
291- @ Override
292- public long longValue () {
293- return 0 ;
294- }
295-
296- }
297-
298273 @ Test
299274 public void testNumberToCharacter () {
300275 assertEquals (Character .valueOf ('A' ), conversionService .convert (Integer .valueOf (65 ), Character .class ));
@@ -798,7 +773,7 @@ public void convertObjectToOptional() {
798773 TypeDescriptor descriptor = new TypeDescriptor (parameter );
799774 Object actual = conversionService .convert ("1,2,3" , TypeDescriptor .valueOf (String .class ), descriptor );
800775 assertEquals (Optional .class , actual .getClass ());
801- assertEquals (Arrays .asList (1 ,2 , 3 ), ((Optional <List <Integer >>) actual ).get ());
776+ assertEquals (Arrays .asList (1 , 2 , 3 ), ((Optional <List <Integer >>) actual ).get ());
802777 }
803778
804779 @ Test
@@ -807,6 +782,38 @@ public void convertObjectToOptionalNull() {
807782 assertSame (Optional .empty (), conversionService .convert (null , Optional .class ));
808783 }
809784
785+ @ Test
786+ public void convertExistingOptional () {
787+ assertSame (Optional .empty (), conversionService .convert (Optional .empty (), TypeDescriptor .valueOf (Object .class ),
788+ TypeDescriptor .valueOf (Optional .class )));
789+ assertSame (Optional .empty (), conversionService .convert (Optional .empty (), Optional .class ));
790+ }
791+
792+
793+ @ SuppressWarnings ("serial" )
794+ public static class CustomNumber extends Number {
795+
796+ @ Override
797+ public double doubleValue () {
798+ return 0 ;
799+ }
800+
801+ @ Override
802+ public float floatValue () {
803+ return 0 ;
804+ }
805+
806+ @ Override
807+ public int intValue () {
808+ return 0 ;
809+ }
810+
811+ @ Override
812+ public long longValue () {
813+ return 0 ;
814+ }
815+ }
816+
810817
811818 public static class TestEntity {
812819
0 commit comments