From 8816b380c35926697610601e793637de740ef7ec Mon Sep 17 00:00:00 2001 From: Andreas Gudian Date: Fri, 10 Apr 2015 11:22:46 +0200 Subject: [PATCH] #534 fix array initializer for NullValueMappingStrategy.RETURN_DEFAULT --- .../org.mapstruct.ap.model.IterableMappingMethod.ftl | 2 +- .../java/org/mapstruct/ap/test/array/ArrayMappingTest.java | 7 +++++-- .../java/org/mapstruct/ap/test/array/ScienceMapper.java | 7 ++++--- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/processor/src/main/resources/org.mapstruct.ap.model.IterableMappingMethod.ftl b/processor/src/main/resources/org.mapstruct.ap.model.IterableMappingMethod.ftl index cd7ae15f9..06a9f9ffb 100644 --- a/processor/src/main/resources/org.mapstruct.ap.model.IterableMappingMethod.ftl +++ b/processor/src/main/resources/org.mapstruct.ap.model.IterableMappingMethod.ftl @@ -33,7 +33,7 @@ } return<#if returnType.name != "void"> ${resultName}; <#else> - return new <@includeModel object=resultElementType/>[]; + return new <@includeModel object=resultElementType/>[0]; <#else> <#if existingInstanceMapping> diff --git a/processor/src/test/java/org/mapstruct/ap/test/array/ArrayMappingTest.java b/processor/src/test/java/org/mapstruct/ap/test/array/ArrayMappingTest.java index 644b2ebf4..392b3a53d 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/array/ArrayMappingTest.java +++ b/processor/src/test/java/org/mapstruct/ap/test/array/ArrayMappingTest.java @@ -18,8 +18,6 @@ */ package org.mapstruct.ap.test.array; -import static org.fest.assertions.Assertions.assertThat; - import java.util.Arrays; import java.util.List; @@ -31,6 +29,8 @@ import org.mapstruct.ap.testutil.IssueKey; import org.mapstruct.ap.testutil.WithClasses; import org.mapstruct.ap.testutil.runner.AnnotationProcessorTestRunner; +import static org.fest.assertions.Assertions.assertThat; + @WithClasses( { Scientist.class, ScientistDto.class, ScienceMapper.class } ) @RunWith(AnnotationProcessorTestRunner.class) @IssueKey("108") @@ -142,6 +142,7 @@ public class ArrayMappingTest { assertThat( existingTarget ).onProperty( "name" ).containsOnly( "Jim" ); } + @IssueKey("534") @Test public void shouldMapbooleanWhenReturnDefault() { @@ -150,6 +151,8 @@ public class ArrayMappingTest { assertThat( target ).containsOnly( false ); assertThat( existingTarget ).containsOnly( false ); + + assertThat( ScienceMapper.INSTANCE.nvmMapping( null ) ).isEmpty(); } @Test diff --git a/processor/src/test/java/org/mapstruct/ap/test/array/ScienceMapper.java b/processor/src/test/java/org/mapstruct/ap/test/array/ScienceMapper.java index a646820a9..8c4936aa7 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/array/ScienceMapper.java +++ b/processor/src/test/java/org/mapstruct/ap/test/array/ScienceMapper.java @@ -19,8 +19,8 @@ package org.mapstruct.ap.test.array; import java.util.List; -import org.mapstruct.IterableMapping; +import org.mapstruct.IterableMapping; import org.mapstruct.Mapper; import org.mapstruct.MappingTarget; import org.mapstruct.NullValueMappingStrategy; @@ -43,6 +43,9 @@ public interface ScienceMapper { ScientistDto[] scientistsToDtos(Scientist[] scientists, @MappingTarget ScientistDto[] target); + @IterableMapping(nullValueMappingStrategy = NullValueMappingStrategy.RETURN_DEFAULT) + boolean[] nvmMapping(boolean[] source); + @IterableMapping( nullValueMappingStrategy = NullValueMappingStrategy.RETURN_DEFAULT ) boolean[] nvmMapping(boolean[] source, @MappingTarget boolean[] target); @@ -71,6 +74,4 @@ public interface ScienceMapper { @IterableMapping( nullValueMappingStrategy = NullValueMappingStrategy.RETURN_DEFAULT ) void nvmMappingVoidReturnDefault(int[] source, @MappingTarget long[] target); - - }