From 33d962a55a559aa706649c29d9dd85d724cc37d9 Mon Sep 17 00:00:00 2001 From: "sebastian.sellmair" Date: Mon, 10 Aug 2020 14:41:33 +0200 Subject: Handle wrongly implemented `DokkaMultiModuleFileLayout` --- .../dokka/gradle/DokkaMultiModuleFileLayoutTest.kt | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'runners/gradle-plugin/src/test/kotlin') diff --git a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaMultiModuleFileLayoutTest.kt b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaMultiModuleFileLayoutTest.kt index 951e292f..6ec3dd57 100644 --- a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaMultiModuleFileLayoutTest.kt +++ b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaMultiModuleFileLayoutTest.kt @@ -2,11 +2,13 @@ package org.jetbrains.dokka.gradle import org.gradle.kotlin.dsl.create import org.gradle.testfixtures.ProjectBuilder +import org.jetbrains.dokka.DokkaException import org.jetbrains.dokka.gradle.DokkaMultiModuleFileLayout.CompactInParent import org.jetbrains.dokka.gradle.DokkaMultiModuleFileLayout.NoCopy import java.io.File import kotlin.test.Test import kotlin.test.assertEquals +import kotlin.test.assertFailsWith import kotlin.test.assertTrue class DokkaMultiModuleFileLayoutTest { @@ -97,4 +99,26 @@ class DokkaMultiModuleFileLayoutTest { "Expected content to be written into 'other.file'" ) } + + @Test + fun `copyChildOutputDirectory target output directory within itself throws DokkaException`() { + val project = ProjectBuilder.builder().build() + val childTask = project.tasks.create("child") + val parentTask = project.tasks.create("parent") + parentTask.fileLayout = object : DokkaMultiModuleFileLayout { + override fun targetChildOutputDirectory(parent: DokkaMultiModuleTask, child: AbstractDokkaTask): File { + return child.outputDirectory.getSafe().resolve("subfolder") + } + } + assertFailsWith { parentTask.copyChildOutputDirectory(childTask) } + } + + @Test + fun `copyChildOutputDirectory NoCopy`() { + val project = ProjectBuilder.builder().build() + val childTask = project.tasks.create("child") + val parentTask = project.tasks.create("parent") + parentTask.fileLayout = NoCopy + parentTask.copyChildOutputDirectory(childTask) + } } -- cgit