summaryrefslogtreecommitdiff
path: root/libs/sftp/src/test/java
diff options
context:
space:
mode:
authorJoel Klinghed <the_jk@spawned.biz>2024-11-06 00:09:17 +0100
committerJoel Klinghed <the_jk@spawned.biz>2024-11-06 00:09:17 +0100
commit717b7da35d3c38baaf5d975ea76c376ead922211 (patch)
tree92dbd47a02f068f876af05b5f50fa9a3cbee1298 /libs/sftp/src/test/java
parent70c2d083688664b007214c52cacfd0cdc6785fa5 (diff)
Add SftpTestHelper
Handles the docker start and stop and all that. Useful for adding more tests that use a sftp instance.
Diffstat (limited to 'libs/sftp/src/test/java')
-rw-r--r--libs/sftp/src/test/java/org/the_jk/cleversync/sftp/SftpTestHelper.kt40
-rw-r--r--libs/sftp/src/test/java/org/the_jk/cleversync/sftp/SftpTreeTest.kt37
2 files changed, 50 insertions, 27 deletions
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<Context>().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()
}
}
}