From 53f05e50f94ae67d416fa9205f056a79e70c598c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20K=C3=BCrten?= <sebastian@mobanisto.de> Date: Thu, 16 Sep 2021 10:55:13 +0200 Subject: [PATCH] Use @TempDir instead of /tmp in WebServerIntegrationTest --- .../java/org/briarproject/mailbox/core/TestModule.kt | 4 ++-- .../mailbox/core/server/WebServerIntegrationTest.kt | 11 ++++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/mailbox-core/src/test/java/org/briarproject/mailbox/core/TestModule.kt b/mailbox-core/src/test/java/org/briarproject/mailbox/core/TestModule.kt index a9424052..38d46db1 100644 --- a/mailbox-core/src/test/java/org/briarproject/mailbox/core/TestModule.kt +++ b/mailbox-core/src/test/java/org/briarproject/mailbox/core/TestModule.kt @@ -21,7 +21,7 @@ import javax.inject.Singleton ] ) @InstallIn(SingletonComponent::class) -internal class TestModule { +internal class TestModule(private val tempDir: File) { @Singleton @Provides fun provideClock() = Clock { System.currentTimeMillis() } @@ -30,7 +30,7 @@ internal class TestModule { @Provides fun provideDatabaseConfig() = object : DatabaseConfig { override fun getDatabaseDirectory(): File { - return File("/tmp") + return tempDir } } } diff --git a/mailbox-core/src/test/java/org/briarproject/mailbox/core/server/WebServerIntegrationTest.kt b/mailbox-core/src/test/java/org/briarproject/mailbox/core/server/WebServerIntegrationTest.kt index f6d92224..75364243 100644 --- a/mailbox-core/src/test/java/org/briarproject/mailbox/core/server/WebServerIntegrationTest.kt +++ b/mailbox-core/src/test/java/org/briarproject/mailbox/core/server/WebServerIntegrationTest.kt @@ -7,26 +7,31 @@ import io.ktor.client.statement.HttpResponse import io.ktor.client.statement.readText import kotlinx.coroutines.runBlocking import org.briarproject.mailbox.core.DaggerTestComponent +import org.briarproject.mailbox.core.TestComponent +import org.briarproject.mailbox.core.TestModule import org.briarproject.mailbox.core.server.WebServerManager.Companion.PORT import org.junit.jupiter.api.AfterAll import org.junit.jupiter.api.BeforeAll import org.junit.jupiter.api.Test import org.junit.jupiter.api.TestInstance import org.junit.jupiter.api.TestInstance.Lifecycle +import org.junit.jupiter.api.io.TempDir +import java.io.File import kotlin.test.assertEquals @TestInstance(Lifecycle.PER_CLASS) class WebServerIntegrationTest { - private val testComponent = DaggerTestComponent.builder().build() - private val lifecycleManager = testComponent.getLifecycleManager() + private lateinit var testComponent: TestComponent + private val lifecycleManager by lazy { testComponent.getLifecycleManager() } private val httpClient = HttpClient(CIO) { expectSuccess = false // prevents exceptions on non-success responses } private val baseUrl = "http://127.0.0.1:$PORT" @BeforeAll - fun setUp() { + fun setUp(@TempDir tempDir: File) { + testComponent = DaggerTestComponent.builder().testModule(TestModule(tempDir)).build() testComponent.injectCoreEagerSingletons() lifecycleManager.startServices() lifecycleManager.waitForStartup() -- GitLab