diff --git a/processor/src/test/java/org/mapstruct/ap/test/severaltargets/Source.java b/processor/src/test/java/org/mapstruct/ap/test/severaltargets/Source.java index 5c0c85224..3e8f44f16 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/severaltargets/Source.java +++ b/processor/src/test/java/org/mapstruct/ap/test/severaltargets/Source.java @@ -25,6 +25,8 @@ public class Source { private TimeAndFormat timeAndFormat; + private String name; + public TimeAndFormat getTimeAndFormat() { return timeAndFormat; } @@ -32,4 +34,12 @@ public class Source { public void setTimeAndFormat(TimeAndFormat timeAndFormat) { this.timeAndFormat = timeAndFormat; } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } } diff --git a/processor/src/test/java/org/mapstruct/ap/test/severaltargets/SourcePropertyMapSeveralTimesTest.java b/processor/src/test/java/org/mapstruct/ap/test/severaltargets/SourcePropertyMapSeveralTimesTest.java index 6daba34ae..958a5a49c 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/severaltargets/SourcePropertyMapSeveralTimesTest.java +++ b/processor/src/test/java/org/mapstruct/ap/test/severaltargets/SourcePropertyMapSeveralTimesTest.java @@ -42,7 +42,20 @@ public class SourcePropertyMapSeveralTimesTest extends MapperTestBase { @Test @IssueKey("94") - public void shouldMapSameSourcePropertyToSeveralTargetProperties() throws ParseException { + public void shouldMapSameSourcePropertyToSeveralTargetProperties() { + Source source = new Source(); + source.setName( "Bob" ); + + Target target = SourceTargetMapper.INSTANCE.sourceToTarget( source ); + + assertThat( target ).isNotNull(); + assertThat( target.getName1() ).isEqualTo( "Bob" ); + assertThat( target.getName2() ).isEqualTo( "Bob" ); + } + + @Test + @IssueKey("94") + public void shouldMapSameSourcePropertyToSeveralTargetPropertiesInvokingOtherMapper() throws ParseException { Source source = new Source(); String sourceFormat = "dd-MM-yyyy"; SimpleDateFormat dateFormat = new SimpleDateFormat( sourceFormat ); diff --git a/processor/src/test/java/org/mapstruct/ap/test/severaltargets/SourceTargetMapper.java b/processor/src/test/java/org/mapstruct/ap/test/severaltargets/SourceTargetMapper.java index 4741cdd1c..c96bc142c 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/severaltargets/SourceTargetMapper.java +++ b/processor/src/test/java/org/mapstruct/ap/test/severaltargets/SourceTargetMapper.java @@ -32,6 +32,8 @@ public interface SourceTargetMapper { @Mappings( { + @Mapping(source = "name", target = "name1"), + @Mapping(source = "name", target = "name2"), @Mapping(source = "timeAndFormat", target = "time"), @Mapping(source = "timeAndFormat", target = "format") }) diff --git a/processor/src/test/java/org/mapstruct/ap/test/severaltargets/Target.java b/processor/src/test/java/org/mapstruct/ap/test/severaltargets/Target.java index 10005684f..30cc21749 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/severaltargets/Target.java +++ b/processor/src/test/java/org/mapstruct/ap/test/severaltargets/Target.java @@ -27,6 +27,8 @@ public class Target { private String format; private Date time; + private String name1; + private String name2; public String getFormat() { return format; @@ -43,4 +45,20 @@ public class Target { public void setTime(Date time) { this.time = time; } + + public String getName1() { + return name1; + } + + public void setName1(String name1) { + this.name1 = name1; + } + + public String getName2() { + return name2; + } + + public void setName2(String name2) { + this.name2 = name2; + } } diff --git a/processor/src/test/java/org/mapstruct/ap/test/severaltargets/TimeAndFormatMapper.java b/processor/src/test/java/org/mapstruct/ap/test/severaltargets/TimeAndFormatMapper.java index 96376abdc..397d4f332 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/severaltargets/TimeAndFormatMapper.java +++ b/processor/src/test/java/org/mapstruct/ap/test/severaltargets/TimeAndFormatMapper.java @@ -26,10 +26,10 @@ import java.util.Date; public class TimeAndFormatMapper { public String getFormat(TimeAndFormat t) { - return t.getTfFormat(); + return t != null ? t.getTfFormat() : null; } public Date getTime(TimeAndFormat t) { - return t.getTfTime(); + return t != null ? t.getTfTime() : null; } }