From cf5b089412ffa95bedc556b6b397276a15acfdb8 Mon Sep 17 00:00:00 2001 From: Andrzej Cichocki Date: Fri, 23 Jun 2017 11:25:49 +0100 Subject: [PATCH] Make 2 tests no longer depend on working directory (#893) --- .../kotlin/net/corda/node/BootTests.kt | 4 ++-- .../net/corda/testing/driver/DriverTests.kt | 4 ++-- .../kotlin/net/corda/testing/ProjectStructure.kt | 16 ++++++++++++++++ 3 files changed, 20 insertions(+), 4 deletions(-) create mode 100644 test-utils/src/main/kotlin/net/corda/testing/ProjectStructure.kt diff --git a/node/src/integration-test/kotlin/net/corda/node/BootTests.kt b/node/src/integration-test/kotlin/net/corda/node/BootTests.kt index 86ed4bd3af..1bae088182 100644 --- a/node/src/integration-test/kotlin/net/corda/node/BootTests.kt +++ b/node/src/integration-test/kotlin/net/corda/node/BootTests.kt @@ -11,12 +11,12 @@ import net.corda.testing.driver.driver import net.corda.node.internal.NodeStartup import net.corda.node.services.startFlowPermission import net.corda.nodeapi.User +import net.corda.testing.ProjectStructure.projectRootDir import org.assertj.core.api.Assertions.assertThat import org.assertj.core.api.Assertions.assertThatThrownBy import org.junit.Test import java.io.* import java.nio.file.Files -import java.nio.file.Paths import kotlin.test.assertEquals class BootTests { @@ -33,7 +33,7 @@ class BootTests { @Test fun `double node start doesn't write into log file`() { - val logConfigFile = Paths.get("..", "config", "dev", "log4j2.xml").toAbsolutePath() + val logConfigFile = projectRootDir / "config" / "dev" / "log4j2.xml" assertThat(logConfigFile).isRegularFile() driver(isDebug = true, systemProperties = mapOf("log4j.configurationFile" to logConfigFile.toString())) { val alice = startNode(ALICE.name).get() diff --git a/test-utils/src/integration-test/kotlin/net/corda/testing/driver/DriverTests.kt b/test-utils/src/integration-test/kotlin/net/corda/testing/driver/DriverTests.kt index 40079f3bdf..5ac11f2139 100644 --- a/test-utils/src/integration-test/kotlin/net/corda/testing/driver/DriverTests.kt +++ b/test-utils/src/integration-test/kotlin/net/corda/testing/driver/DriverTests.kt @@ -13,9 +13,9 @@ import net.corda.node.internal.NodeStartup import net.corda.node.services.api.RegulatorService import net.corda.node.services.transactions.SimpleNotaryService import net.corda.nodeapi.ArtemisMessagingComponent +import net.corda.testing.ProjectStructure.projectRootDir import org.assertj.core.api.Assertions.assertThat import org.junit.Test -import java.nio.file.Paths import java.util.concurrent.Executors import java.util.concurrent.ScheduledExecutorService @@ -70,7 +70,7 @@ class DriverTests { @Test fun `debug mode enables debug logging level`() { // Make sure we're using the log4j2 config which writes to the log file - val logConfigFile = Paths.get("..", "config", "dev", "log4j2.xml").toAbsolutePath() + val logConfigFile = projectRootDir / "config" / "dev" / "log4j2.xml" assertThat(logConfigFile).isRegularFile() driver(isDebug = true, systemProperties = mapOf("log4j.configurationFile" to logConfigFile.toString())) { val baseDirectory = startNode(DUMMY_BANK_A.name).getOrThrow().configuration.baseDirectory diff --git a/test-utils/src/main/kotlin/net/corda/testing/ProjectStructure.kt b/test-utils/src/main/kotlin/net/corda/testing/ProjectStructure.kt new file mode 100644 index 0000000000..3e866fdf4e --- /dev/null +++ b/test-utils/src/main/kotlin/net/corda/testing/ProjectStructure.kt @@ -0,0 +1,16 @@ +package net.corda.testing + +import net.corda.core.div +import net.corda.core.isDirectory +import java.nio.file.Path +import java.nio.file.Paths + +object ProjectStructure { + val projectRootDir: Path = run { + var dir = Paths.get(javaClass.getResource("/").toURI()) + while (!(dir / ".git").isDirectory()) { + dir = dir.parent + } + dir + } +}