Implement multipart tests #4
|
@ -6,6 +6,7 @@ import org.junit.jupiter.api.*
|
|||
import org.junit.jupiter.api.Assertions.*
|
||||
import java.io.File
|
||||
import kotlin.io.path.*
|
||||
import kotlin.random.Random
|
||||
|
||||
val bucketName = System.getenv("BACKUP_BUCKET") ?: "teamcity-executors-test-task"
|
||||
|
||||
|
@ -17,7 +18,7 @@ class BackupClientTest {
|
|||
fun `before each`() =
|
||||
runBlocking {
|
||||
s3 = S3Client.fromEnvironment {}
|
||||
backupClient = BackupClient(s3, bucketName)
|
||||
backupClient = BackupClient(s3, bucketName, 1024 * 1024 * 10)
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
|
@ -49,6 +50,26 @@ class BackupClientTest {
|
|||
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) ->
|
||||
DynamicTest.dynamicTest(name) {
|
||||
val paths = pathsGen()
|
||||
|
|
Reference in New Issue