diff --git a/processor/src/test/java/org/mapstruct/ap/test/imports/InnerClassesImportsTest.java b/processor/src/test/java/org/mapstruct/ap/test/imports/InnerClassesImportsTest.java index fefaca82a..00bfa61af 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/imports/InnerClassesImportsTest.java +++ b/processor/src/test/java/org/mapstruct/ap/test/imports/InnerClassesImportsTest.java @@ -32,6 +32,7 @@ import org.mapstruct.ap.test.imports.innerclasses.SourceWithInnerClass; import org.mapstruct.ap.test.imports.innerclasses.SourceWithInnerClass.SourceInnerClass; import org.mapstruct.ap.test.imports.innerclasses.TargetWithInnerClass; import org.mapstruct.ap.test.imports.innerclasses.TargetWithInnerClass.TargetInnerClass; +import org.mapstruct.ap.test.imports.innerclasses.TargetWithInnerClass.TargetInnerClass.TargetInnerInnerClass; import org.mapstruct.ap.testutil.IssueKey; import org.mapstruct.ap.testutil.WithClasses; import org.mapstruct.ap.testutil.runner.AnnotationProcessorTestRunner; @@ -70,6 +71,20 @@ public class InnerClassesImportsTest { generatedSource.forMapper( InnerClassMapper.class ).containsImportFor( TargetInnerClass.class ); } + @Test + @IssueKey( "412" ) + public void mapperRequiresInnerInnerClassImports() { + SourceInnerClass source = new SourceInnerClass(); + source.setValue( 412 ); + + TargetInnerInnerClass target = InnerClassMapper.INSTANCE.innerSourceToInnerInnerTarget( source ); + + assertThat( target ).isNotNull(); + assertThat( target.getValue() ).isEqualTo( 412 ); + generatedSource.forMapper( InnerClassMapper.class ).containsImportFor( SourceInnerClass.class ); + generatedSource.forMapper( InnerClassMapper.class ).containsImportFor( TargetInnerInnerClass.class ); + } + @Test @IssueKey( "209" ) public void mapperRequiresInnerEnumImports() { diff --git a/processor/src/test/java/org/mapstruct/ap/test/imports/innerclasses/InnerClassMapper.java b/processor/src/test/java/org/mapstruct/ap/test/imports/innerclasses/InnerClassMapper.java index 89a38ad7b..1b9636c35 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/imports/innerclasses/InnerClassMapper.java +++ b/processor/src/test/java/org/mapstruct/ap/test/imports/innerclasses/InnerClassMapper.java @@ -21,6 +21,7 @@ package org.mapstruct.ap.test.imports.innerclasses; import org.mapstruct.Mapper; import org.mapstruct.ap.test.imports.innerclasses.SourceWithInnerClass.SourceInnerClass; import org.mapstruct.ap.test.imports.innerclasses.TargetWithInnerClass.TargetInnerClass; +import org.mapstruct.ap.test.imports.innerclasses.TargetWithInnerClass.TargetInnerClass.TargetInnerInnerClass; import org.mapstruct.factory.Mappers; @Mapper @@ -32,4 +33,6 @@ public interface InnerClassMapper { TargetInnerClass innerSourceToInnerTarget(SourceInnerClass source); + TargetInnerInnerClass innerSourceToInnerInnerTarget(SourceInnerClass source); + } diff --git a/processor/src/test/java/org/mapstruct/ap/test/imports/innerclasses/TargetWithInnerClass.java b/processor/src/test/java/org/mapstruct/ap/test/imports/innerclasses/TargetWithInnerClass.java index 2ea5b6288..9003bb43d 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/imports/innerclasses/TargetWithInnerClass.java +++ b/processor/src/test/java/org/mapstruct/ap/test/imports/innerclasses/TargetWithInnerClass.java @@ -40,6 +40,17 @@ public class TargetWithInnerClass { public void setValue(int value) { this.value = value; } - } + public static class TargetInnerInnerClass { + private int value; + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + } + } }