Skip to content

Commit

Permalink
Issue #24 NumberToNumberConverter did not perform a check for same-ty…
Browse files Browse the repository at this point in the history
…pe conversions, now it does. NumberToNumberConverterTest failed to spot the error because it did not test through the beanmapper. Removed these test in favor of higher level tests that map through beanmapper
  • Loading branch information
robert-bor committed Aug 23, 2015
1 parent 023bb34 commit 7313002
Show file tree
Hide file tree
Showing 8 changed files with 60 additions and 42 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

<groupId>io.beanmapper</groupId>
<artifactId>beanmapper</artifactId>
<version>0.2.12</version>
<version>0.2.13-SNAPSHOT</version>
<packaging>jar</packaging>
<name>42 Bean Mapper</name>
<description>Easy-to-use bean mapper for conversion from form to object to view</description>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@ public void setBeanMapper(BeanMapper beanMapper) {
*/
@Override
public Object convert(Object source, Class<?> targetClass, BeanFieldMatch beanFieldMatch) {
if (source == null || beanFieldMatch.getSourceClass().equals(targetClass)) {
return source;
}
Object sourceAsString = beanMapper.convert(source, String.class, beanFieldMatch);
return beanMapper.convert(sourceAsString, targetClass, beanFieldMatch);
}
Expand Down
33 changes: 33 additions & 0 deletions src/test/java/io/beanmapper/BeanMapperTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@
import io.beanmapper.testmodel.converterBetweenNestedClasses.TargetWithNestedClass;
import io.beanmapper.testmodel.defaults.SourceWithDefaults;
import io.beanmapper.testmodel.defaults.TargetWithDefaults;
import io.beanmapper.testmodel.numbers.ClassWithInteger;
import io.beanmapper.testmodel.numbers.ClassWithLong;
import io.beanmapper.testmodel.numbers.SourceWithDouble;
import io.beanmapper.testmodel.numbers.TargetWithDouble;
import io.beanmapper.testmodel.emptyobject.EmptySource;
import io.beanmapper.testmodel.emptyobject.EmptyTarget;
import io.beanmapper.testmodel.encapsulate.*;
Expand Down Expand Up @@ -251,6 +255,35 @@ public void copyToExistingTargetInstance() {
assertEquals("Den Haag", person.getPlace());
}

@Test
public void mapDouble() {
SourceWithDouble source = new SourceWithDouble();
source.number = 13.5;
TargetWithDouble target = beanMapper.map(source, TargetWithDouble.class);
assertEquals((Double)13.5, target.number);
}

@Test
public void mapLongToInteger() {
ClassWithLong source = new ClassWithLong();
source.number = 42L;
ClassWithInteger target = beanMapper.map(source, ClassWithInteger.class);
assertEquals((Integer)42, target.number);
}

@Test
public void mapIntegerToLong() {
ClassWithInteger source = new ClassWithInteger();
source.number = 42;
ClassWithLong target = beanMapper.map(source, ClassWithLong.class);
assertEquals((Long)42L, target.number);
}

/*
Assert.assertTrue(converter.match(Integer.class, Long.class));
Assert.assertEquals(Long.valueOf(42), converter.convert(Integer.valueOf(42), Long.class, null));
*/

@Test
public void beanIgnore() {
IgnoreSource ignoreSource = new IgnoreSource();
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package io.beanmapper.testmodel.numbers;

public class ClassWithInteger {
public Integer number;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package io.beanmapper.testmodel.numbers;

public class ClassWithLong {
public Long number;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package io.beanmapper.testmodel.numbers;

public class SourceWithDouble {

public Double number;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package io.beanmapper.testmodel.numbers;

public class TargetWithDouble {

public Double number;

}

0 comments on commit 7313002

Please sign in to comment.