Skip to content

Commit 07266af

Browse files
authored
Merge pull request #285 from aiven/ivanyu/test-fix-captors
Use captors correctly in tests
2 parents 95108b0 + d114076 commit 07266af

File tree

1 file changed

+22
-23
lines changed

1 file changed

+22
-23
lines changed

storage/s3/src/test/java/io/aiven/kafka/tieredstorage/storage/s3/S3MultiPartOutputStreamTest.java

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@
4141
import static org.assertj.core.api.Assertions.assertThat;
4242
import static org.assertj.core.api.Assertions.assertThatThrownBy;
4343
import static org.mockito.ArgumentMatchers.any;
44-
import static org.mockito.Mockito.doNothing;
4544
import static org.mockito.Mockito.never;
4645
import static org.mockito.Mockito.times;
4746
import static org.mockito.Mockito.verify;
@@ -70,12 +69,11 @@ class S3MultiPartOutputStreamTest {
7069

7170
@Test
7271
void sendAbortForAnyExceptionWhileWriting() {
73-
when(mockedS3.initiateMultipartUpload(any(InitiateMultipartUploadRequest.class)))
72+
when(mockedS3.initiateMultipartUpload(any()))
7473
.thenReturn(newInitiateMultipartUploadResult());
75-
doNothing().when(mockedS3).abortMultipartUpload(abortMultipartUploadRequestCaptor.capture());
7674

7775
final RuntimeException testException = new RuntimeException("test");
78-
when(mockedS3.uploadPart(any(UploadPartRequest.class)))
76+
when(mockedS3.uploadPart(any()))
7977
.thenThrow(testException);
8078

8179
assertThatThrownBy(() -> {
@@ -87,18 +85,17 @@ void sendAbortForAnyExceptionWhileWriting() {
8785

8886
verify(mockedS3).initiateMultipartUpload(any(InitiateMultipartUploadRequest.class));
8987
verify(mockedS3).uploadPart(any(UploadPartRequest.class));
90-
verify(mockedS3).abortMultipartUpload(abortMultipartUploadRequestCaptor.getValue());
88+
verify(mockedS3).abortMultipartUpload(abortMultipartUploadRequestCaptor.capture());
9189

9290
assertAbortMultipartUploadRequest(abortMultipartUploadRequestCaptor.getValue());
9391
}
9492

9593
@Test
9694
void sendAbortForAnyExceptionWhenClose() throws Exception {
97-
when(mockedS3.initiateMultipartUpload(any(InitiateMultipartUploadRequest.class)))
95+
when(mockedS3.initiateMultipartUpload(any()))
9896
.thenReturn(newInitiateMultipartUploadResult());
99-
doNothing().when(mockedS3).abortMultipartUpload(abortMultipartUploadRequestCaptor.capture());
10097

101-
when(mockedS3.uploadPart(any(UploadPartRequest.class)))
98+
when(mockedS3.uploadPart(any()))
10299
.thenThrow(RuntimeException.class);
103100

104101
final S3MultiPartOutputStream out = new S3MultiPartOutputStream(BUCKET_NAME, FILE_KEY, 10, mockedS3);
@@ -113,27 +110,27 @@ void sendAbortForAnyExceptionWhenClose() throws Exception {
113110
.isInstanceOf(RuntimeException.class);
114111

115112
verify(mockedS3, never()).completeMultipartUpload(any(CompleteMultipartUploadRequest.class));
116-
verify(mockedS3).abortMultipartUpload(abortMultipartUploadRequestCaptor.getValue());
113+
verify(mockedS3).abortMultipartUpload(abortMultipartUploadRequestCaptor.capture());
117114

118115
assertAbortMultipartUploadRequest(abortMultipartUploadRequestCaptor.getValue());
119116
}
120117

121118
@Test
122119
void writesOneByte() throws Exception {
123-
when(mockedS3.initiateMultipartUpload(any(InitiateMultipartUploadRequest.class)))
120+
when(mockedS3.initiateMultipartUpload(any()))
124121
.thenReturn(newInitiateMultipartUploadResult());
125-
when(mockedS3.uploadPart(uploadPartRequestCaptor.capture()))
122+
when(mockedS3.uploadPart(any()))
126123
.thenReturn(newUploadPartResult(1, "SOME_ETAG"));
127-
when(mockedS3.completeMultipartUpload(completeMultipartUploadRequestCaptor.capture()))
124+
when(mockedS3.completeMultipartUpload(any()))
128125
.thenReturn(new CompleteMultipartUploadResult());
129126

130127
try (final S3MultiPartOutputStream out = new S3MultiPartOutputStream(BUCKET_NAME, FILE_KEY, 100, mockedS3)) {
131128
out.write(1);
132129
}
133130

134131
verify(mockedS3).initiateMultipartUpload(any(InitiateMultipartUploadRequest.class));
135-
verify(mockedS3).uploadPart(any(UploadPartRequest.class));
136-
verify(mockedS3).completeMultipartUpload(any(CompleteMultipartUploadRequest.class));
132+
verify(mockedS3).uploadPart(uploadPartRequestCaptor.capture());
133+
verify(mockedS3).completeMultipartUpload(completeMultipartUploadRequestCaptor.capture());
137134

138135
assertUploadPartRequest(
139136
uploadPartRequestCaptor.getValue(),
@@ -151,14 +148,14 @@ void writesMultipleMessages() throws Exception {
151148
final int bufferSize = 10;
152149
final byte[] message = new byte[bufferSize];
153150

154-
when(mockedS3.initiateMultipartUpload(any(InitiateMultipartUploadRequest.class)))
151+
when(mockedS3.initiateMultipartUpload(any()))
155152
.thenReturn(newInitiateMultipartUploadResult());
156-
when(mockedS3.uploadPart(uploadPartRequestCaptor.capture()))
153+
when(mockedS3.uploadPart(any()))
157154
.thenAnswer(a -> {
158155
final UploadPartRequest up = a.getArgument(0);
159156
return newUploadPartResult(up.getPartNumber(), "SOME_TAG#" + up.getPartNumber());
160157
});
161-
when(mockedS3.completeMultipartUpload(completeMultipartUploadRequestCaptor.capture()))
158+
when(mockedS3.completeMultipartUpload(any()))
162159
.thenReturn(new CompleteMultipartUploadResult());
163160

164161
final List<byte[]> expectedMessagesList = new ArrayList<>();
@@ -172,8 +169,8 @@ void writesMultipleMessages() throws Exception {
172169
}
173170

174171
verify(mockedS3).initiateMultipartUpload(any(InitiateMultipartUploadRequest.class));
175-
verify(mockedS3, times(3)).uploadPart(any(UploadPartRequest.class));
176-
verify(mockedS3).completeMultipartUpload(any(CompleteMultipartUploadRequest.class));
172+
verify(mockedS3, times(3)).uploadPart(uploadPartRequestCaptor.capture());
173+
verify(mockedS3).completeMultipartUpload(completeMultipartUploadRequestCaptor.capture());
177174

178175
final List<UploadPartRequest> uploadRequests = uploadPartRequestCaptor.getAllValues();
179176
int counter = 0;
@@ -199,18 +196,18 @@ void writesTailMessages() throws Exception {
199196

200197
final List<UploadPartRequest> uploadPartRequests = new ArrayList<>();
201198

202-
when(mockedS3.initiateMultipartUpload(any(InitiateMultipartUploadRequest.class)))
199+
when(mockedS3.initiateMultipartUpload(any()))
203200
.thenReturn(newInitiateMultipartUploadResult());
204-
when(mockedS3.uploadPart(any(UploadPartRequest.class)))
201+
when(mockedS3.uploadPart(any()))
205202
.thenAnswer(a -> {
206203
final UploadPartRequest up = a.getArgument(0);
207204
//emulate behave of S3 client otherwise we will get wrong array in the memory
208205
up.setInputStream(new ByteArrayInputStream(up.getInputStream().readAllBytes()));
209206
uploadPartRequests.add(up);
210207

211-
return newUploadPartResult(up.getPartNumber(), "SOME_TAG#" + up.getPartNumber());
208+
return newUploadPartResult(up.getPartNumber(), "SOME_ETAG#" + up.getPartNumber());
212209
});
213-
when(mockedS3.completeMultipartUpload(completeMultipartUploadRequestCaptor.capture()))
210+
when(mockedS3.completeMultipartUpload(any()))
214211
.thenReturn(new CompleteMultipartUploadResult());
215212

216213
final byte[] message = new byte[messageSize];
@@ -235,6 +232,8 @@ void writesTailMessages() throws Exception {
235232
verify(mockedS3).initiateMultipartUpload(any(InitiateMultipartUploadRequest.class));
236233
verify(mockedS3, times(2)).uploadPart(any(UploadPartRequest.class));
237234
verify(mockedS3).completeMultipartUpload(completeMultipartUploadRequestCaptor.capture());
235+
assertCompleteMultipartUploadRequest(completeMultipartUploadRequestCaptor.getValue(),
236+
List.of(new PartETag(1, "SOME_ETAG#1"), new PartETag(2, "SOME_ETAG#2")));
238237
}
239238

240239
private static InitiateMultipartUploadResult newInitiateMultipartUploadResult() {

0 commit comments

Comments
 (0)