diff --git a/src/test/kotlin/backup/BackupClientTest.kt b/src/test/kotlin/backup/BackupClientTest.kt index 74be479..ae825df 100644 --- a/src/test/kotlin/backup/BackupClientTest.kt +++ b/src/test/kotlin/backup/BackupClientTest.kt @@ -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()