Implement multipart tests #4

Merged
cyclane merged 2 commits from multipart-tests into main 2023-12-31 09:02:37 +00:00
1 changed files with 22 additions and 1 deletions

View File

@ -6,6 +6,7 @@ import org.junit.jupiter.api.*
import org.junit.jupiter.api.Assertions.* import org.junit.jupiter.api.Assertions.*
import java.io.File import java.io.File
import kotlin.io.path.* import kotlin.io.path.*
import kotlin.random.Random
val bucketName = System.getenv("BACKUP_BUCKET") ?: "teamcity-executors-test-task" val bucketName = System.getenv("BACKUP_BUCKET") ?: "teamcity-executors-test-task"
@ -17,7 +18,7 @@ class BackupClientTest {
fun `before each`() = fun `before each`() =
runBlocking { runBlocking {
s3 = S3Client.fromEnvironment {} s3 = S3Client.fromEnvironment {}
backupClient = BackupClient(s3, bucketName) backupClient = BackupClient(s3, bucketName, 1024 * 1024 * 10)
} }
@AfterEach @AfterEach
@ -49,6 +50,26 @@ class BackupClientTest {
Path("_test/README.md").apply { writeText("# This is a test directory structure.") }, Path("_test/README.md").apply { writeText("# This is a test directory structure.") },
) )
}, },
"single large file" to {
val bytes = ByteArray(1024 * 1024 * 32)
Random.nextBytes(bytes)
listOf(
Path("_test.txt").apply { writeBytes(bytes) },
)
},
"large directory structure" to {
val bytes1 = ByteArray(1024 * 1024 * 32)
val bytes2 = ByteArray(1024 * 1024 * 48)
listOf(
Path("_test").createDirectory(),
Path("_test/a.txt").apply { writeBytes(bytes1) },
Path("_test/folder").createDirectory(),
Path("_test/another-folder").createDirectory(),
Path("_test/another-folder/b").apply { writeText("This is file B\n") },
Path("_test/another-folder/c.txt").createFile(),
Path("_test/README.md").apply { writeBytes(bytes2) },
)
},
).map { (name, pathsGen) -> ).map { (name, pathsGen) ->
DynamicTest.dynamicTest(name) { DynamicTest.dynamicTest(name) {
val paths = pathsGen() val paths = pathsGen()