16
16
import org .springframework .boot .test .context .SpringBootTest ;
17
17
import org .springframework .test .util .ReflectionTestUtils ;
18
18
import software .amazon .awssdk .awscore .exception .AwsServiceException ;
19
+ import software .amazon .awssdk .core .async .AsyncRequestBody ;
19
20
import software .amazon .awssdk .core .sync .RequestBody ;
21
+ import software .amazon .awssdk .services .s3 .S3AsyncClient ;
20
22
import software .amazon .awssdk .services .s3 .S3Client ;
21
23
import software .amazon .awssdk .services .s3 .model .PutObjectRequest ;
22
24
import software .amazon .awssdk .services .s3 .model .PutObjectResponse ;
26
28
import java .nio .file .Path ;
27
29
import java .util .Map ;
28
30
import java .util .Optional ;
31
+ import java .util .concurrent .CompletableFuture ;
29
32
import java .util .concurrent .Semaphore ;
30
33
31
34
@ SpringBootTest
@@ -44,7 +47,7 @@ class DataUploadServiceTest {
44
47
private Path sharingRoot ;
45
48
46
49
@ Mock
47
- S3Client s3Client ;
50
+ S3AsyncClient s3Client ;
48
51
49
52
@ Mock
50
53
AWSClientBuilder s3 ;
@@ -102,14 +105,14 @@ void shouldNotUploadDataIfAWSUpset(@TempDir Path tempDir) throws IOException, In
102
105
Mockito .when (sharingRoot .toString ()).thenReturn (tempDir .toString ());
103
106
Mockito .when (hpds .writePhenotypicData (q )).thenReturn (true );
104
107
Mockito .when (s3 .buildClientForSite ("bch" )).thenReturn (Optional .of (s3Client ));
105
- Mockito .when (s3Client .putObject (Mockito .any (PutObjectRequest .class ), Mockito .any (RequestBody .class )))
108
+ Mockito .when (s3Client .putObject (Mockito .any (PutObjectRequest .class ), Mockito .any (AsyncRequestBody .class )))
106
109
.thenThrow (AwsServiceException .builder ().build ());
107
110
108
111
subject .uploadData (q , DataType .Phenotypic , "bch" );
109
112
110
113
Mockito .verify (statusService , Mockito .times (1 )).setPhenotypicStatus (q , UploadStatus .Querying );
111
114
Mockito .verify (statusService , Mockito .times (1 )).setPhenotypicStatus (q , UploadStatus .Uploading );
112
- Mockito .verify (s3Client , Mockito .times (1 )).putObject (Mockito .any (PutObjectRequest .class ), Mockito .any (RequestBody .class ));
115
+ Mockito .verify (s3Client , Mockito .times (1 )).putObject (Mockito .any (PutObjectRequest .class ), Mockito .any (AsyncRequestBody .class ));
113
116
Mockito .verify (statusService , Mockito .times (1 )).setPhenotypicStatus (q , UploadStatus .Error );
114
117
Mockito .verify (uploadLock , Mockito .times (1 )).acquire ();
115
118
Mockito .verify (uploadLock , Mockito .times (1 )).release ();
@@ -129,14 +132,14 @@ void shouldUploadData(@TempDir Path tempDir) throws IOException, InterruptedExce
129
132
Mockito .when (sharingRoot .toString ()).thenReturn (tempDir .toString ());
130
133
Mockito .when (hpds .writePhenotypicData (q )).thenReturn (true );
131
134
Mockito .when (s3 .buildClientForSite ("bch" )).thenReturn (Optional .of (s3Client ));
132
- Mockito .when (s3Client .putObject (Mockito .any (PutObjectRequest .class ), Mockito .any (RequestBody .class )))
133
- .thenReturn (Mockito .mock (PutObjectResponse .class ));
135
+ Mockito .when (s3Client .putObject (Mockito .any (PutObjectRequest .class ), Mockito .any (AsyncRequestBody .class )))
136
+ .thenReturn (CompletableFuture . completedFuture ( Mockito .mock (PutObjectResponse .class ) ));
134
137
135
138
subject .uploadData (q , DataType .Phenotypic , "bch" );
136
139
137
140
Mockito .verify (statusService , Mockito .times (1 )).setPhenotypicStatus (q , UploadStatus .Querying );
138
141
Mockito .verify (statusService , Mockito .times (1 )).setPhenotypicStatus (q , UploadStatus .Uploading );
139
- Mockito .verify (s3Client , Mockito .times (1 )).putObject (Mockito .any (PutObjectRequest .class ), Mockito .any (RequestBody .class ));
142
+ Mockito .verify (s3Client , Mockito .times (1 )).putObject (Mockito .any (PutObjectRequest .class ), Mockito .any (AsyncRequestBody .class ));
140
143
Mockito .verify (statusService , Mockito .times (1 )).setPhenotypicStatus (q , UploadStatus .Uploaded );
141
144
Assertions .assertFalse (Files .exists (fileToUpload ));
142
145
Mockito .verify (uploadLock , Mockito .times (1 )).acquire ();
0 commit comments