From 9e2cdc73377cfe4fbccebf62fd2da356a52755be Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Tue, 16 Mar 2021 15:25:16 +0100 Subject: [PATCH] Add file or directory exists/does not exist assertions. ^KT-45744 In Progress --- .../kotlin/gradle/SimpleKotlinGradleIT.kt | 1 - .../kotlin/gradle/testbase/fileAssertions.kt | 53 +++++++++++++++++++ .../kotlin/gradle/testbase/testDsl.kt | 6 ++- 3 files changed, 57 insertions(+), 3 deletions(-) create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/fileAssertions.kt diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SimpleKotlinGradleIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SimpleKotlinGradleIT.kt index 4d34d44d6e6..fa10eb71127 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SimpleKotlinGradleIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SimpleKotlinGradleIT.kt @@ -1,5 +1,4 @@ package org.jetbrains.kotlin.gradle - import org.gradle.api.logging.configuration.WarningMode import org.jetbrains.kotlin.gradle.util.modify import org.junit.Test diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/fileAssertions.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/fileAssertions.kt new file mode 100644 index 00000000000..e947dfe9df5 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/fileAssertions.kt @@ -0,0 +1,53 @@ +/* + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.gradle.testbase + +import java.nio.file.Files + +/** + * Asserts file under [pathToFile] relative to the test project exists and is a regular file. + */ +fun TestProject.assertFileExists( + pathToFile: String +) { + val filePath = projectPath.resolve(pathToFile) + assert(Files.exists(filePath)) { + "File '${filePath}' does not exist!" + } + + assert(Files.isRegularFile(filePath)) { + "'${filePath}' is not a regular file!" + } +} + +/** + * Asserts file under [pathToFile] relative to the test project does not exist. + */ +fun TestProject.assertFileNotExists( + pathToFile: String +) { + val filePath = projectPath.resolve(pathToFile) + assert(!Files.exists(filePath)) { + "File '${filePath}' exists!" + } +} + +/** + * Asserts directory under [pathToDir] relative to the test project exists and is a directory. + */ +fun TestProject.assertDirectoryExists( + pathToDir: String +) { + val dirPath = projectPath.resolve(pathToDir) + + assert(Files.exists(dirPath)) { + "Directory '${dirPath}' does not exist!" + } + + assert(Files.isDirectory(dirPath)) { + "'${dirPath}' is not a directory!" + } +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testDsl.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testDsl.kt index 6b2195eb171..c34a947c0f5 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testDsl.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testDsl.kt @@ -37,7 +37,8 @@ fun KGPBaseTest.project( val testProject = TestProject( gradleRunner, projectName, - buildOptions + buildOptions, + projectPath ) testProject.test() return testProject @@ -74,7 +75,8 @@ fun TestProject.buildAndFail( class TestProject( val gradleRunner: GradleRunner, val projectName: String, - val buildOptions: KGPBaseTest.BuildOptions + val buildOptions: KGPBaseTest.BuildOptions, + val projectPath: Path ) private fun TestProject.commonBuildSetup(