From 34a5765cbb2ce495a1a6094fc2b25dfbf3b9ca3d Mon Sep 17 00:00:00 2001 From: sjaakd Date: Sun, 6 Jul 2014 11:55:05 +0200 Subject: [PATCH] #255 adding unit test for existing mapping target --- .../expressions/java/JavaExpressionTest.java | 23 ++++++++++++++++++- .../expressions/java/SourceTargetMapper.java | 8 +++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/processor/src/test/java/org/mapstruct/ap/test/source/expressions/java/JavaExpressionTest.java b/processor/src/test/java/org/mapstruct/ap/test/source/expressions/java/JavaExpressionTest.java index b17d360b1..f3f50d84e 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/source/expressions/java/JavaExpressionTest.java +++ b/processor/src/test/java/org/mapstruct/ap/test/source/expressions/java/JavaExpressionTest.java @@ -37,7 +37,7 @@ import org.mapstruct.ap.testutil.IssueKey; @RunWith(AnnotationProcessorTestRunner.class) public class JavaExpressionTest { - @Test + @Test @WithClasses({ SourceTargetMapper.class }) public void testJavaExpressionInsertion() throws ParseException { Source source = new Source(); @@ -84,4 +84,25 @@ public class JavaExpressionTest { Date result = dateFormat.parse( date ); return result; } + + @Test + @WithClasses({ SourceTargetMapper.class }) + public void testJavaExpressionInsertionWithExistingTarget() throws ParseException { + Source source = new Source(); + String format = "dd-MM-yyyy,hh:mm:ss"; + Date time = getTime( format, "09-01-2014,01:35:03" ); + + source.setFormat( format ); + source.setTime( time ); + Target target = new Target(); + + + Target target2 = SourceTargetMapper.INSTANCE.sourceToTargetWithMappingTarget( source, target ); + + assertThat( target ).isNotNull(); + assertThat( target.getTimeAndFormat().getTime() ).isEqualTo( time ); + assertThat( target.getTimeAndFormat().getFormat() ).isEqualTo( format ); + assertThat( target.getAnotherProp() ).isNull(); + assertThat( target ).isEqualTo( target2 ); + } } diff --git a/processor/src/test/java/org/mapstruct/ap/test/source/expressions/java/SourceTargetMapper.java b/processor/src/test/java/org/mapstruct/ap/test/source/expressions/java/SourceTargetMapper.java index f30b0c17d..50e56d600 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/source/expressions/java/SourceTargetMapper.java +++ b/processor/src/test/java/org/mapstruct/ap/test/source/expressions/java/SourceTargetMapper.java @@ -20,6 +20,7 @@ package org.mapstruct.ap.test.source.expressions.java; import org.mapstruct.Mapper; import org.mapstruct.Mapping; +import org.mapstruct.MappingTarget; import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; @@ -38,4 +39,11 @@ public interface SourceTargetMapper { @Mapping( target = "anotherProp", ignore = true ) } ) Target sourceToTarget(Source s); + + @Mappings( { + @Mapping( target = "timeAndFormat", expression = "java( new org.mapstruct.ap.test.source.expressions.java." + + "TimeAndFormat( s.getTime(), s.getFormat() ))" ), + @Mapping( target = "anotherProp", ignore = true ) + } ) + Target sourceToTargetWithMappingTarget(Source s, @MappingTarget Target t); }