1
1
package org.radarbase.output
2
2
3
- import io.minio.PutObjectOptions
3
+ import io.minio.*
4
4
import io.minio.PutObjectOptions.MAX_PART_SIZE
5
5
import org.junit.jupiter.api.Assertions.assertEquals
6
6
import org.junit.jupiter.api.Test
7
7
import org.radarbase.output.config.*
8
8
import org.radarbase.output.util.Timer
9
+ import org.radarbase.output.util.bucketBuild
10
+ import org.radarbase.output.util.objectBuild
9
11
import java.nio.charset.StandardCharsets.UTF_8
10
12
import java.nio.file.Paths
11
13
@@ -31,8 +33,8 @@ class RestructureS3IntegrationTest {
31
33
)
32
34
val application = Application (config)
33
35
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) )
36
38
}
37
39
38
40
val resourceFiles = listOf (
@@ -43,18 +45,24 @@ class RestructureS3IntegrationTest {
43
45
val targetFiles = resourceFiles.map { Paths .get(" in/$it " ) }
44
46
resourceFiles.forEachIndexed { i, resourceFile ->
45
47
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
+ })
47
51
}
48
52
}
49
53
50
54
application.start()
51
55
52
56
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
+ })
54
62
.map { it.get().objectName() }
55
63
.toList()
56
64
57
- application.redisPool.resource.use { redis ->
65
+ application.redisHolder.execute { redis ->
58
66
assertEquals(1L , redis.del(" offsets/application_server_status.json" ))
59
67
assertEquals(1L , redis.del(" offsets/android_phone_acceleration.json" ))
60
68
}
@@ -70,26 +78,36 @@ class RestructureS3IntegrationTest {
70
78
" $secondParticipantOutput /schema-android_phone_acceleration.json" ),
71
79
files)
72
80
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 ))
74
86
75
87
val csvContents = """
76
88
key.projectId,key.userId,key.sourceId,value.time,value.serverStatus,value.ipAddress
77
89
STAGING_PROJECT,1543bc93-3c17-4381-89a5-c5d6272b827c,99caf236-bbe6-4eed-9c63-fba77349821d,1.58021982003E9,CONNECTED,
78
90
STAGING_PROJECT,1543bc93-3c17-4381-89a5-c5d6272b827c,99caf236-bbe6-4eed-9c63-fba77349821d,1.58021982003E9,CONNECTED,
79
91
80
92
""" .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
+ })
82
97
.readBytes()
83
98
.toString(UTF_8 ))
84
99
85
100
targetFiles.forEach {
86
- sourceClient.removeObject(sourceConfig.bucket, it.toString())
101
+ sourceClient.removeObject(RemoveObjectArgs .Builder ()
102
+ .objectBuild(sourceConfig.bucket, it))
87
103
}
88
- sourceClient.removeBucket(sourceConfig.bucket)
104
+ sourceClient.removeBucket(RemoveBucketArgs . Builder ().bucketBuild( sourceConfig.bucket) )
89
105
files.forEach {
90
- targetClient.removeObject(targetConfig.bucket, it)
106
+ targetClient.removeObject(RemoveObjectArgs .Builder ().bucketBuild(targetConfig.bucket) {
107
+ `object `(it)
108
+ })
91
109
}
92
- targetClient.removeBucket(targetConfig.bucket)
110
+ targetClient.removeBucket(RemoveBucketArgs . Builder ().bucketBuild( targetConfig.bucket) )
93
111
94
112
println (Timer )
95
113
}
0 commit comments