From 717b7da35d3c38baaf5d975ea76c376ead922211 Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Wed, 6 Nov 2024 00:09:17 +0100 Subject: Add SftpTestHelper Handles the docker start and stop and all that. Useful for adding more tests that use a sftp instance. --- .../org/the_jk/cleversync/sftp/SftpTestHelper.kt | 40 ++++++++++++++++++++++ .../org/the_jk/cleversync/sftp/SftpTreeTest.kt | 37 ++++++-------------- 2 files changed, 50 insertions(+), 27 deletions(-) create mode 100644 libs/sftp/src/test/java/org/the_jk/cleversync/sftp/SftpTestHelper.kt (limited to 'libs') diff --git a/libs/sftp/src/test/java/org/the_jk/cleversync/sftp/SftpTestHelper.kt b/libs/sftp/src/test/java/org/the_jk/cleversync/sftp/SftpTestHelper.kt new file mode 100644 index 0000000..69a5011 --- /dev/null +++ b/libs/sftp/src/test/java/org/the_jk/cleversync/sftp/SftpTestHelper.kt @@ -0,0 +1,40 @@ +package org.the_jk.cleversync.sftp + +import com.google.common.truth.Truth.assertThat +import java.io.File + +class SftpTestHelper { + val uri get() = _uri + val dockerDir get() = _dockerDir + val shareDir get() = _shareDir + + private lateinit var _uri: String + private lateinit var _dockerDir: File + private lateinit var _shareDir: File + + private var dockerRunning = false + + fun setUp() { + _uri = "ssh://127.0.0.1:10022/share" + _dockerDir = File(System.getProperty("dockerDir")!!) + _shareDir = File(System.getProperty("shareDir")!!) + _shareDir.deleteRecursively() + _shareDir.mkdirs() + + val pb = ProcessBuilder("docker", "compose", "up", "--wait", "--wait-timeout", "60") + pb.directory(_dockerDir) + val exitCode = pb.start().waitFor() + assertThat(exitCode).isEqualTo(0) + dockerRunning = true + } + + fun tearDown() { + if (dockerRunning) { + val pb = ProcessBuilder("docker", "compose", "down") + pb.directory(_dockerDir) + pb.start().waitFor() + dockerRunning = false + } + _shareDir.deleteRecursively() + } +} diff --git a/libs/sftp/src/test/java/org/the_jk/cleversync/sftp/SftpTreeTest.kt b/libs/sftp/src/test/java/org/the_jk/cleversync/sftp/SftpTreeTest.kt index b254c4e..fd8f83b 100644 --- a/libs/sftp/src/test/java/org/the_jk/cleversync/sftp/SftpTreeTest.kt +++ b/libs/sftp/src/test/java/org/the_jk/cleversync/sftp/SftpTreeTest.kt @@ -32,6 +32,8 @@ class SftpTreeTest : TreeAbstractTest() { val testName = TestName() private lateinit var hostsStorage: SftpHostsStorage + private val shareDir get() = helper.shareDir + private val dockerDir get() = helper.dockerDir @Before fun setUpTest() { @@ -41,7 +43,7 @@ class SftpTreeTest : TreeAbstractTest() { hostsStorage = SftpHostsStorage(ApplicationProvider.getApplicationContext()) - tree = SftpTreeFactory.modifiableTree(uri, credentials, hostsStorage).getOrThrow() + tree = SftpTreeFactory.modifiableTree(helper.uri, credentials, hostsStorage).getOrThrow() } @After @@ -60,7 +62,7 @@ class SftpTreeTest : TreeAbstractTest() { @Test fun description() { val resources = ApplicationProvider.getApplicationContext().resources - assertThat(tree.description(resources).toString()).contains(uri) + assertThat(tree.description(resources).toString()).contains(helper.uri) } @Test @@ -143,18 +145,18 @@ class SftpTreeTest : TreeAbstractTest() { val credentials = getCredentials() // Connect again, this time with a cached fingerprint - SftpTreeFactory.tree(uri, credentials, hostsStorage).getOrThrow() + SftpTreeFactory.tree(helper.uri, credentials, hostsStorage).getOrThrow() assertThat(hostsStorage.size()).isEqualTo(1) } @Test fun wrongFingerprint() { - val actualUri = Uri.parse(uri) + val actualUri = Uri.parse(helper.uri) hostsStorage.put(actualUri.host!!, actualUri.port, NativeSftp.Fingerprint(ByteArray(0))) val credentials = getCredentials() - assertThat(SftpTreeFactory.tree(uri, credentials, hostsStorage) + assertThat(SftpTreeFactory.tree(helper.uri, credentials, hostsStorage) .exceptionOrNull()?.message).isEqualTo("[fingerprint mismatch]") } @@ -180,37 +182,18 @@ class SftpTreeTest : TreeAbstractTest() { } companion object { - private lateinit var uri: String - private lateinit var dockerDir: File - private lateinit var shareDir: File - private var dockerRunning = false + private val helper = SftpTestHelper() @BeforeClass @JvmStatic fun setUpClass() { - uri = "ssh://127.0.0.1:10022/share" - dockerDir = File(System.getProperty("dockerDir")!!) - shareDir = File(System.getProperty("shareDir")!!) - shareDir.deleteRecursively() - shareDir.mkdirs() - - val pb = ProcessBuilder("docker", "compose", "up", "--wait", "--wait-timeout", "60") - pb.directory(dockerDir) - val exitCode = pb.start().waitFor() - assertThat(exitCode).isEqualTo(0) - dockerRunning = true + helper.setUp() } @AfterClass @JvmStatic fun tearDownClass() { - if (dockerRunning) { - val pb = ProcessBuilder("docker", "compose", "down") - pb.directory(dockerDir) - pb.start().waitFor() - dockerRunning = false - } - shareDir.deleteRecursively() + helper.tearDown() } } } -- cgit v1.2.3-70-g09d2