diff options
| author | Joel Klinghed <the_jk@spawned.biz> | 2024-11-09 16:17:44 +0100 |
|---|---|---|
| committer | Joel Klinghed <the_jk@spawned.biz> | 2024-11-09 16:17:44 +0100 |
| commit | 882520f3baee410647c3b99d608cc8fe18b0f5d0 (patch) | |
| tree | eebb370a4977ea20ce3cfaf679aff387ab0896c9 /libs/sftp/src/test/java/org | |
| parent | 6ea5cef180db16523b2d629a44ee556507e3de78 (diff) | |
sftp: add single merge tests for both local <-> sftp and sftp <-> local
Had to fixup the symlink code in Sftp, most importantly add a PathUtils
relativeTo to fixup relative links.
Diffstat (limited to 'libs/sftp/src/test/java/org')
| -rw-r--r-- | libs/sftp/src/test/java/org/the_jk/cleversync/sftp/SingleMergeLocalSftpTest.kt | 76 | ||||
| -rw-r--r-- | libs/sftp/src/test/java/org/the_jk/cleversync/sftp/SingleMergeSftpLocalTest.kt | 77 |
2 files changed, 153 insertions, 0 deletions
diff --git a/libs/sftp/src/test/java/org/the_jk/cleversync/sftp/SingleMergeLocalSftpTest.kt b/libs/sftp/src/test/java/org/the_jk/cleversync/sftp/SingleMergeLocalSftpTest.kt new file mode 100644 index 0000000..0e61fa6 --- /dev/null +++ b/libs/sftp/src/test/java/org/the_jk/cleversync/sftp/SingleMergeLocalSftpTest.kt @@ -0,0 +1,76 @@ +package org.the_jk.cleversync.sftp + +import androidx.test.core.app.ApplicationProvider +import com.google.common.truth.Truth.assertThat +import org.junit.After +import org.junit.AfterClass +import org.junit.BeforeClass +import org.junit.Rule +import org.junit.rules.TemporaryFolder +import org.junit.runner.RunWith +import org.robolectric.RobolectricTestRunner +import org.robolectric.annotation.Config +import org.the_jk.cleversync.io.BaseSingleMergeTest +import org.the_jk.cleversync.io.ModifiableTree +import org.the_jk.cleversync.io.sftp.SftpCredentials +import org.the_jk.cleversync.io.sftp.SftpHostsStorage +import org.the_jk.cleversync.local.LocalTreeFactory + +@Config(manifest=Config.NONE) +@RunWith(RobolectricTestRunner::class) +class SingleMergeLocalSftpTest : BaseSingleMergeTest() { + @Rule + @JvmField + val temp = TemporaryFolder() + + private lateinit var hostsStorage: SftpHostsStorage + private lateinit var sftp: ModifiableTree + + @After + fun tearDownTest() { + sftp.close() + + for (file in helper.shareDir.listFiles()!!) { + if (file.isDirectory) { + file.deleteRecursively() + } else { + file.delete() + } + } + } + + override fun source(): ModifiableTree { + return LocalTreeFactory.modifiableTree(temp.root.toPath()) + } + + override fun sourceSupportsSymlinks() = true + + override fun target(): ModifiableTree { + assertThat(helper.shareDir.listFiles()).isEmpty() + + val credentials = SftpCredentials.SftpPasswordCredentials("user", "notverysecret") + + hostsStorage = SftpHostsStorage(ApplicationProvider.getApplicationContext()) + + sftp = SftpTreeFactory.modifiableTree(helper.uri, credentials, hostsStorage).getOrThrow() + return sftp + } + + override fun targetSupportsSymlinks() = true + + companion object { + private val helper = SftpTestHelper() + + @BeforeClass + @JvmStatic + fun setUpClass() { + helper.setUp() + } + + @AfterClass + @JvmStatic + fun tearDownClass() { + helper.tearDown() + } + } +} diff --git a/libs/sftp/src/test/java/org/the_jk/cleversync/sftp/SingleMergeSftpLocalTest.kt b/libs/sftp/src/test/java/org/the_jk/cleversync/sftp/SingleMergeSftpLocalTest.kt new file mode 100644 index 0000000..eeb473c --- /dev/null +++ b/libs/sftp/src/test/java/org/the_jk/cleversync/sftp/SingleMergeSftpLocalTest.kt @@ -0,0 +1,77 @@ +package org.the_jk.cleversync.sftp + +import androidx.test.core.app.ApplicationProvider +import com.google.common.truth.Truth.assertThat +import org.junit.After +import org.junit.AfterClass +import org.junit.BeforeClass +import org.junit.Rule +import org.junit.rules.TemporaryFolder +import org.junit.runner.RunWith +import org.robolectric.RobolectricTestRunner +import org.robolectric.annotation.Config +import org.the_jk.cleversync.io.BaseSingleMergeTest +import org.the_jk.cleversync.io.ModifiableTree +import org.the_jk.cleversync.io.sftp.SftpCredentials +import org.the_jk.cleversync.io.sftp.SftpHostsStorage +import org.the_jk.cleversync.local.LocalTreeFactory +import kotlin.time.Duration.Companion.milliseconds + +@Config(manifest=Config.NONE) +@RunWith(RobolectricTestRunner::class) +class SingleMergeSftpLocalTest : BaseSingleMergeTest() { + @Rule + @JvmField + val temp = TemporaryFolder() + + private lateinit var hostsStorage: SftpHostsStorage + private lateinit var sftp: ModifiableTree + + @After + fun tearDownTest() { + sftp.close() + + for (file in helper.shareDir.listFiles()!!) { + if (file.isDirectory) { + file.deleteRecursively() + } else { + file.delete() + } + } + } + + override fun source(): ModifiableTree { + assertThat(helper.shareDir.listFiles()).isEmpty() + + val credentials = SftpCredentials.SftpPasswordCredentials("user", "notverysecret") + + hostsStorage = SftpHostsStorage(ApplicationProvider.getApplicationContext()) + + sftp = SftpTreeFactory.modifiableTree(helper.uri, credentials, hostsStorage).getOrThrow() + return sftp + } + + override fun sourceSupportsSymlinks() = true + + override fun target(): ModifiableTree { + return LocalTreeFactory.modifiableTree(temp.root.toPath()) + } + + override fun targetSupportsSymlinks() = true + + companion object { + private val helper = SftpTestHelper() + + @BeforeClass + @JvmStatic + fun setUpClass() { + helper.setUp() + } + + @AfterClass + @JvmStatic + fun tearDownClass() { + helper.tearDown() + } + } +} |
