11package org.radarbase.output
22
3- import io.minio.PutObjectOptions
3+ import io.minio.*
44import io.minio.PutObjectOptions.MAX_PART_SIZE
55import org.junit.jupiter.api.Assertions.assertEquals
66import org.junit.jupiter.api.Test
77import org.radarbase.output.config.*
88import org.radarbase.output.util.Timer
9+ import org.radarbase.output.util.bucketBuild
10+ import org.radarbase.output.util.objectBuild
911import java.nio.charset.StandardCharsets.UTF_8
1012import java.nio.file.Paths
1113
@@ -31,8 +33,8 @@ class RestructureS3IntegrationTest {
3133 )
3234 val application = Application (config)
3335 val sourceClient = sourceConfig.createS3Client()
34- if (! sourceClient.bucketExists(sourceConfig.bucket)) {
35- sourceClient.makeBucket(sourceConfig.bucket)
36+ if (! sourceClient.bucketExists(BucketExistsArgs . Builder ().bucketBuild( sourceConfig.bucket) )) {
37+ sourceClient.makeBucket(MakeBucketArgs . Builder ().bucketBuild( sourceConfig.bucket) )
3638 }
3739
3840 val resourceFiles = listOf (
@@ -43,18 +45,24 @@ class RestructureS3IntegrationTest {
4345 val targetFiles = resourceFiles.map { Paths .get(" in/$it " ) }
4446 resourceFiles.forEachIndexed { i, resourceFile ->
4547 javaClass.getResourceAsStream(" /$resourceFile " ).use { statusFile ->
46- sourceClient.putObject(sourceConfig.bucket, targetFiles[i].toString(), statusFile, PutObjectOptions (- 1 , MAX_PART_SIZE ))
48+ sourceClient.putObject(PutObjectArgs .Builder ().objectBuild(sourceConfig.bucket, targetFiles[i]) {
49+ stream(statusFile, - 1 , MAX_PART_SIZE )
50+ })
4751 }
4852 }
4953
5054 application.start()
5155
5256 val targetClient = targetConfig.createS3Client()
53- val files = targetClient.listObjects(targetConfig.bucket, " output" )
57+ val files = targetClient.listObjects(ListObjectsArgs .Builder ().bucketBuild(targetConfig.bucket) {
58+ prefix(" output" )
59+ recursive(true )
60+ useUrlEncodingType(false )
61+ })
5462 .map { it.get().objectName() }
5563 .toList()
5664
57- application.redisPool.resource.use { redis ->
65+ application.redisHolder.execute { redis ->
5866 assertEquals(1L , redis.del(" offsets/application_server_status.json" ))
5967 assertEquals(1L , redis.del(" offsets/android_phone_acceleration.json" ))
6068 }
@@ -70,26 +78,36 @@ class RestructureS3IntegrationTest {
7078 " $secondParticipantOutput /schema-android_phone_acceleration.json" ),
7179 files)
7280
73- println (targetClient.getObject(targetConfig.bucket, " $firstParticipantOutput /20200128_1300.csv" ).readBytes().toString(UTF_8 ))
81+ println (targetClient.getObject(GetObjectArgs .builder()
82+ .bucketBuild(targetConfig.bucket) {
83+ `object `(" $firstParticipantOutput /20200128_1300.csv" )
84+ }
85+ ).readBytes().toString(UTF_8 ))
7486
7587 val csvContents = """
7688 key.projectId,key.userId,key.sourceId,value.time,value.serverStatus,value.ipAddress
7789 STAGING_PROJECT,1543bc93-3c17-4381-89a5-c5d6272b827c,99caf236-bbe6-4eed-9c63-fba77349821d,1.58021982003E9,CONNECTED,
7890 STAGING_PROJECT,1543bc93-3c17-4381-89a5-c5d6272b827c,99caf236-bbe6-4eed-9c63-fba77349821d,1.58021982003E9,CONNECTED,
7991
8092 """ .trimIndent()
81- assertEquals(csvContents, targetClient.getObject(targetConfig.bucket, " $firstParticipantOutput /20200128_1300.csv" )
93+ assertEquals(csvContents, targetClient.getObject(GetObjectArgs .Builder ()
94+ .bucketBuild(targetConfig.bucket) {
95+ `object `(" $firstParticipantOutput /20200128_1300.csv" )
96+ })
8297 .readBytes()
8398 .toString(UTF_8 ))
8499
85100 targetFiles.forEach {
86- sourceClient.removeObject(sourceConfig.bucket, it.toString())
101+ sourceClient.removeObject(RemoveObjectArgs .Builder ()
102+ .objectBuild(sourceConfig.bucket, it))
87103 }
88- sourceClient.removeBucket(sourceConfig.bucket)
104+ sourceClient.removeBucket(RemoveBucketArgs . Builder ().bucketBuild( sourceConfig.bucket) )
89105 files.forEach {
90- targetClient.removeObject(targetConfig.bucket, it)
106+ targetClient.removeObject(RemoveObjectArgs .Builder ().bucketBuild(targetConfig.bucket) {
107+ `object `(it)
108+ })
91109 }
92- targetClient.removeBucket(targetConfig.bucket)
110+ targetClient.removeBucket(RemoveBucketArgs . Builder ().bucketBuild( targetConfig.bucket) )
93111
94112 println (Timer )
95113 }
0 commit comments