Skip to content

Commit e13ac02

Browse files
committed
Fix up merge
1 parent 26550f8 commit e13ac02

File tree

1 file changed

+41
-39
lines changed

1 file changed

+41
-39
lines changed

modules/repository-s3/src/test/java/org/elasticsearch/repositories/s3/S3BlobStoreContainerTests.java

Lines changed: 41 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import software.amazon.awssdk.services.s3.model.SdkPartType;
3030
import software.amazon.awssdk.services.s3.model.StorageClass;
3131
import software.amazon.awssdk.services.s3.model.UploadPartCopyRequest;
32+
import software.amazon.awssdk.services.s3.model.UploadPartCopyResponse;
3233
import software.amazon.awssdk.services.s3.model.UploadPartRequest;
3334
import software.amazon.awssdk.services.s3.model.UploadPartResponse;
3435

@@ -233,7 +234,7 @@ void testExecuteMultipart(boolean doCopy) throws IOException {
233234
);
234235

235236
final ArgumentCaptor<UploadPartRequest> uploadPartRequestCaptor = ArgumentCaptor.forClass(UploadPartRequest.class);
236-
final ArgumentCaptor<UploadPartCopyRequest> copyPartRequestCaptor = ArgumentCaptor.forClass(UploadPartCopyRequest.class);
237+
final ArgumentCaptor<UploadPartCopyRequest> uploadPartCopyRequestCaptor = ArgumentCaptor.forClass(UploadPartCopyRequest.class);
237238
final ArgumentCaptor<RequestBody> uploadPartBodyCaptor = ArgumentCaptor.forClass(RequestBody.class);
238239

239240
final List<String> expectedEtags = new ArrayList<>();
@@ -245,18 +246,14 @@ void testExecuteMultipart(boolean doCopy) throws IOException {
245246
} while (totalBytes < blobSize);
246247

247248
if (doCopy) {
248-
when(client.uploadPartCopy(copyPartRequestCaptor.capture(), uploadPartBodyCaptor.capture())).thenAnswer(invocationOnMock -> {
249-
final UploadPartRequest request = (UploadPartRequest) invocationOnMock.getArguments()[0];
250-
final UploadPartResponse.Builder responseBuilder = UploadPartResponse.builder();
251-
responseBuilder.eTag(expectedEtags.get(request.partNumber() - 1));
252-
return responseBuilder.build();
249+
when(client.uploadPartCopy(uploadPartCopyRequestCaptor.capture())).thenAnswer(invocationOnMock -> {
250+
final UploadPartCopyRequest request = invocationOnMock.getArgument(0);
251+
return UploadPartCopyResponse.builder().copyPartResult(b -> b.eTag(expectedEtags.get(request.partNumber()))).build();
253252
});
254253
} else {
255254
when(client.uploadPart(uploadPartRequestCaptor.capture(), uploadPartBodyCaptor.capture())).thenAnswer(invocationOnMock -> {
256-
final UploadPartRequest request = (UploadPartRequest) invocationOnMock.getArguments()[0];
257-
final UploadPartResponse.Builder responseBuilder = UploadPartResponse.builder();
258-
responseBuilder.eTag(expectedEtags.get(request.partNumber() - 1));
259-
return responseBuilder.build();
255+
final UploadPartRequest request = invocationOnMock.getArgument(0);
256+
return UploadPartResponse.builder().eTag(expectedEtags.get(request.partNumber() - 1)).build();
260257
});
261258
}
262259

@@ -292,42 +289,47 @@ void testExecuteMultipart(boolean doCopy) throws IOException {
292289
final Tuple<Long, Long> numberOfParts = S3BlobContainer.numberOfMultiparts(blobSize, partSize);
293290

294291
if (doCopy) {
295-
final var copyRequests = copyArgCaptor.getAllValues();
292+
final var copyRequests = uploadPartCopyRequestCaptor.getAllValues();
296293
assertEquals(numberOfParts.v1().intValue(), copyRequests.size());
297294
for (int i = 0; i < copyRequests.size(); i++) {
298-
final var request = copyRequests.get(i);
295+
final var uploadPartCopyRequest = copyRequests.get(i);
299296
final long startOffset = i * partSize;
300297
final long endOffset = Math.min(startOffset + partSize - 1, blobSize - 1);
301298

302-
assertEquals(sourceBucketName, request.getSourceBucketName());
303-
assertEquals(sourceBlobPath.buildAsString() + sourceBlobName, request.getSourceKey());
304-
assertEquals(bucketName, request.getDestinationBucketName());
305-
assertEquals(blobPath.buildAsString() + blobName, request.getDestinationKey());
306-
assertEquals(initResult.getUploadId(), request.getUploadId());
307-
assertEquals(i + 1, request.getPartNumber());
308-
assertEquals(Long.valueOf(startOffset), request.getFirstByte());
309-
assertEquals(Long.valueOf(endOffset), request.getLastByte());
299+
assertEquals(sourceBucketName, uploadPartCopyRequest.sourceBucket());
300+
assertEquals(sourceBlobPath.buildAsString() + sourceBlobName, uploadPartCopyRequest.sourceKey());
301+
assertEquals(bucketName, uploadPartCopyRequest.destinationBucket());
302+
assertEquals(blobPath.buildAsString() + blobName, uploadPartCopyRequest.destinationKey());
303+
assertEquals(uploadId, uploadPartCopyRequest.uploadId());
304+
assertEquals(Integer.valueOf(i + 1), uploadPartCopyRequest.partNumber());
305+
assertEquals("bytes=" + startOffset + "-" + endOffset, uploadPartCopyRequest.copySourceRange());
310306
}
311307
} else {
312-
final List<UploadPartRequest> uploadRequests = uploadArgCaptor.getAllValues();
313-
assertEquals(numberOfParts.v1().intValue(), uploadRequests.size());
314-
315-
for (int i = 0; i < uploadRequests.size(); i++) {
316-
final UploadPartRequest uploadRequest = uploadRequests.get(i);
317-
318-
assertEquals(bucketName, uploadRequest.getBucketName());
319-
assertEquals(blobPath.buildAsString() + blobName, uploadRequest.getKey());
320-
assertEquals(initResult.getUploadId(), uploadRequest.getUploadId());
321-
assertEquals(i + 1, uploadRequest.getPartNumber());
322-
assertEquals(inputStream, uploadRequest.getInputStream());
323-
324-
if (i == (uploadRequests.size() - 1)) {
325-
assertTrue(uploadRequest.isLastPart());
326-
assertEquals(numberOfParts.v2().longValue(), uploadRequest.getPartSize());
327-
} else {
328-
assertFalse(uploadRequest.isLastPart());
329-
assertEquals(bufferSize, uploadRequest.getPartSize());
330-
}
308+
final List<UploadPartRequest> uploadPartRequests = uploadPartRequestCaptor.getAllValues();
309+
assertEquals(numberOfParts.v1().intValue(), uploadPartRequests.size());
310+
311+
final List<RequestBody> uploadPartBodies = uploadPartBodyCaptor.getAllValues();
312+
assertEquals(numberOfParts.v1().intValue(), uploadPartBodies.size());
313+
314+
for (int i = 0; i < uploadPartRequests.size(); i++) {
315+
final UploadPartRequest uploadRequest = uploadPartRequests.get(i);
316+
317+
assertEquals(bucketName, uploadRequest.bucket());
318+
assertEquals(blobPath.buildAsString() + blobName, uploadRequest.key());
319+
assertEquals(uploadId, uploadRequest.uploadId());
320+
assertEquals(i + 1, uploadRequest.partNumber().intValue());
321+
322+
assertEquals(
323+
uploadRequest.sdkPartType() + " at " + i + " of " + uploadPartRequests.size(),
324+
uploadRequest.sdkPartType() == SdkPartType.LAST,
325+
i == uploadPartRequests.size() - 1
326+
);
327+
328+
assertEquals(
329+
"part " + i,
330+
uploadRequest.sdkPartType() == SdkPartType.LAST ? Optional.of(numberOfParts.v2()) : Optional.of(bufferSize),
331+
uploadPartBodies.get(i).optionalContentLength()
332+
);
331333
}
332334
}
333335

0 commit comments

Comments
 (0)