fixed failing tests due to generic object to object converter fallback being over eager
This commit is contained in:
@@ -16,13 +16,15 @@
|
||||
|
||||
package org.springframework.core.convert.support;
|
||||
|
||||
import static junit.framework.Assert.assertEquals;
|
||||
import static org.junit.Assert.fail;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.BigInteger;
|
||||
import java.util.Locale;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.core.convert.ConversionFailedException;
|
||||
import org.springframework.core.convert.converter.Converter;
|
||||
|
||||
/**
|
||||
@@ -181,6 +183,49 @@ public class DefaultConversionServiceTests {
|
||||
assertEquals("3", o.convert(3));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convertObjectToObjectValueOFMethod() {
|
||||
DefaultConversionService conversionService = new DefaultConversionService();
|
||||
assertEquals(new Integer(3), conversionService.convert("3", Integer.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convertObjectToObjectConstructor() {
|
||||
DefaultConversionService conversionService = new DefaultConversionService();
|
||||
assertEquals(new SSN("123456789"), conversionService.convert("123456789", SSN.class));
|
||||
assertEquals("123456789", conversionService.convert(new SSN("123456789"), String.class));
|
||||
}
|
||||
|
||||
@Test(expected=ConversionFailedException.class)
|
||||
public void convertObjectToObjectNoValueOFMethodOrConstructor() {
|
||||
DefaultConversionService conversionService = new DefaultConversionService();
|
||||
conversionService.convert(new Long(3), SSN.class);
|
||||
}
|
||||
|
||||
private static class SSN {
|
||||
private String value;
|
||||
|
||||
public SSN(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public boolean equals(Object o) {
|
||||
if (!(o instanceof SSN)) {
|
||||
return false;
|
||||
}
|
||||
SSN ssn = (SSN) o;
|
||||
return this.value.equals(ssn.value);
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
return value.hashCode();
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
public static class CustomNumber extends Number {
|
||||
|
||||
@Override
|
||||
|
||||
@@ -67,7 +67,6 @@ public class GenericConversionServiceTests {
|
||||
@Test
|
||||
public void converterNotFound() {
|
||||
try {
|
||||
conversionService.removeConvertible(Object.class, Object.class);
|
||||
conversionService.convert("3", Integer.class);
|
||||
fail("Should have thrown an exception");
|
||||
} catch (ConverterNotFoundException e) {
|
||||
@@ -126,7 +125,6 @@ public class GenericConversionServiceTests {
|
||||
|
||||
@Test
|
||||
public void convertObjectToPrimitive() {
|
||||
conversionService.removeConvertible(Object.class, Object.class);
|
||||
assertFalse(conversionService.canConvert(String.class, boolean.class));
|
||||
conversionService.addConverter(new StringToBooleanConverter());
|
||||
assertTrue(conversionService.canConvert(String.class, boolean.class));
|
||||
@@ -662,46 +660,6 @@ public class GenericConversionServiceTests {
|
||||
assertEquals(new Long(1), result.get(1L));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convertObjectToObjectValueOFMethod() {
|
||||
assertEquals(new Integer(3), conversionService.convert("3", Integer.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convertObjectToObjectConstructor() {
|
||||
assertEquals(new SSN("123456789"), conversionService.convert("123456789", SSN.class));
|
||||
assertEquals("123456789", conversionService.convert(new SSN("123456789"), String.class));
|
||||
}
|
||||
|
||||
@Test(expected=ConversionFailedException.class)
|
||||
public void convertObjectToObjectNoValueOFMethodOrConstructor() {
|
||||
conversionService.convert(new Long(3), Integer.class);
|
||||
}
|
||||
|
||||
private static class SSN {
|
||||
private String value;
|
||||
|
||||
public SSN(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public boolean equals(Object o) {
|
||||
if (!(o instanceof SSN)) {
|
||||
return false;
|
||||
}
|
||||
SSN ssn = (SSN) o;
|
||||
return this.value.equals(ssn.value);
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
return value.hashCode();
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void genericConverterDelegatingBackToConversionServiceConverterNotFound() {
|
||||
conversionService.addGenericConverter(Object.class, Object[].class, new ObjectToArrayConverter(
|
||||
@@ -717,8 +675,6 @@ public class GenericConversionServiceTests {
|
||||
public void parent() {
|
||||
GenericConversionService parent = new GenericConversionService();
|
||||
conversionService.setParent(parent);
|
||||
conversionService.removeConvertible(Object.class, Object.class);
|
||||
parent.removeConvertible(Object.class, Object.class);
|
||||
assertFalse(conversionService.canConvert(String.class, Integer.class));
|
||||
try {
|
||||
conversionService.convert("3", Integer.class);
|
||||
|
||||
Reference in New Issue
Block a user