Skip to content

Commit d3e4d3d

Browse files
committed
Fix up testExecuteMultipartUploadAborted
1 parent becc33f commit d3e4d3d

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

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

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212
import software.amazon.awssdk.awscore.exception.AwsServiceException;
1313
import software.amazon.awssdk.core.sync.RequestBody;
1414
import software.amazon.awssdk.http.SdkHttpClient;
15-
import software.amazon.awssdk.http.apache.ApacheHttpClient;
1615
import software.amazon.awssdk.metrics.MetricCollection;
1716
import software.amazon.awssdk.metrics.MetricPublisher;
1817
import software.amazon.awssdk.services.s3.S3Client;
1918
import software.amazon.awssdk.services.s3.model.AbortMultipartUploadRequest;
19+
import software.amazon.awssdk.services.s3.model.AbortMultipartUploadResponse;
2020
import software.amazon.awssdk.services.s3.model.CompleteMultipartUploadRequest;
2121
import software.amazon.awssdk.services.s3.model.CompleteMultipartUploadResponse;
2222
import software.amazon.awssdk.services.s3.model.CompletedPart;
@@ -51,8 +51,6 @@
5151
import static org.hamcrest.Matchers.equalTo;
5252
import static org.hamcrest.Matchers.instanceOf;
5353
import static org.mockito.ArgumentMatchers.any;
54-
import static org.mockito.Mockito.doAnswer;
55-
import static org.mockito.Mockito.doNothing;
5654
import static org.mockito.Mockito.mock;
5755
import static org.mockito.Mockito.times;
5856
import static org.mockito.Mockito.verify;
@@ -315,12 +313,19 @@ public void testExecuteMultipartUploadAborted() {
315313
when(blobStore.getStorageClass()).thenReturn(randomFrom(StorageClass.values()));
316314

317315
final S3Client client = mock(S3Client.class);
318-
final SdkHttpClient httpClient = mock(ApacheHttpClient.class);
316+
final SdkHttpClient httpClient = mock(SdkHttpClient.class);
319317
final AmazonS3Reference clientReference = new AmazonS3Reference(client, httpClient);
320-
doAnswer(invocation -> {
321-
clientReference.incRef();
318+
when(blobStore.clientReference()).then(invocation -> {
319+
clientReference.mustIncRef();
322320
return clientReference;
323-
}).when(blobStore).clientReference();
321+
});
322+
when(blobStore.getMetricPublisher(any(), any())).thenReturn(new MetricPublisher() {
323+
@Override
324+
public void publish(MetricCollection metricCollection) {}
325+
326+
@Override
327+
public void close() {}
328+
});
324329

325330
final String uploadId = randomAlphaOfLength(25);
326331

@@ -360,15 +365,15 @@ public void testExecuteMultipartUploadAborted() {
360365
}
361366

362367
final ArgumentCaptor<AbortMultipartUploadRequest> argumentCaptor = ArgumentCaptor.forClass(AbortMultipartUploadRequest.class);
363-
doNothing().when(client).abortMultipartUpload(argumentCaptor.capture());
368+
when(client.abortMultipartUpload(argumentCaptor.capture())).thenReturn(AbortMultipartUploadResponse.builder().build());
364369

365370
final IOException e = expectThrows(IOException.class, () -> {
366371
final S3BlobContainer blobContainer = new S3BlobContainer(BlobPath.EMPTY, blobStore);
367372
blobContainer.executeMultipartUpload(randomPurpose(), blobStore, blobName, new ByteArrayInputStream(new byte[0]), blobSize);
368373
});
369374

370375
assertEquals("Unable to upload object [" + blobName + "] using multipart upload", e.getMessage());
371-
assertThat(e.getCause(), instanceOf(S3Exception.class)); // TODO NOMERGE is there a more fine grained error class?
376+
assertThat(e.getCause(), instanceOf(S3Exception.class));
372377
assertEquals(exceptions.get(stage).getMessage(), e.getCause().getMessage());
373378

374379
if (stage == 0) {

0 commit comments

Comments
 (0)