@Test public void testDeleteDirectoryNoS3VersionsExist() { // Create an S3 file transfer request parameters DTO to access S3 objects. S3FileTransferRequestParamsDto s3FileTransferRequestParamsDto = new S3FileTransferRequestParamsDto(); s3FileTransferRequestParamsDto.setS3BucketName(S3_BUCKET_NAME); s3FileTransferRequestParamsDto.setS3KeyPrefix(S3_KEY_PREFIX); // Create a retry policy. RetryPolicy retryPolicy = new RetryPolicy(PredefinedRetryPolicies.DEFAULT_RETRY_CONDITION, PredefinedRetryPolicies.DEFAULT_BACKOFF_STRATEGY, INTEGER_VALUE, true); // Create an empty version listing. VersionListing versionListing = new VersionListing(); // Mock the external calls. when(retryPolicyFactory.getRetryPolicy()).thenReturn(retryPolicy); when(s3Operations.listVersions(any(ListVersionsRequest.class), any(AmazonS3Client.class))).thenReturn(versionListing); // Call the method under test. s3DaoImpl.deleteDirectory(s3FileTransferRequestParamsDto); // Verify the external calls. verify(retryPolicyFactory).getRetryPolicy(); verify(s3Operations).listVersions(any(ListVersionsRequest.class), any(AmazonS3Client.class)); verifyNoMoreInteractionsHelper(); }
versionListing = s3Operations.listVersions(listVersionsRequest, s3Client); s3VersionSummaries.addAll(versionListing.getVersionSummaries()); listVersionsRequest.setKeyMarker(versionListing.getNextKeyMarker());
versionListing = s3Operations.listVersions(listVersionsRequest, s3Client); s3VersionSummaries.addAll(versionListing.getVersionSummaries()); listVersionsRequest.setKeyMarker(versionListing.getNextKeyMarker());
when(s3Operations.listVersions(any(ListVersionsRequest.class), any(AmazonS3Client.class))).thenReturn(versionListing); when(s3Operations.deleteObjects(any(DeleteObjectsRequest.class), any(AmazonS3Client.class))).thenThrow(multiObjectDeleteException); verify(s3Operations).listVersions(any(ListVersionsRequest.class), any(AmazonS3Client.class)); verify(s3Operations).deleteObjects(any(DeleteObjectsRequest.class), any(AmazonS3Client.class)); verifyNoMoreInteractionsHelper();
@Test public void testListVersionsAssertHandleGenericAmazonS3Exception() { S3Operations originalS3Operations = (S3Operations) ReflectionTestUtils.getField(s3Dao, "s3Operations"); S3Operations mockS3Operations = mock(S3Operations.class); ReflectionTestUtils.setField(s3Dao, "s3Operations", mockS3Operations); try { String s3BucketName = "s3BucketName"; String s3KeyPrefix = "s3KeyPrefix"; S3FileTransferRequestParamsDto s3FileTransferRequestParamsDto = new S3FileTransferRequestParamsDto(); s3FileTransferRequestParamsDto.setS3BucketName(s3BucketName); s3FileTransferRequestParamsDto.setS3KeyPrefix(s3KeyPrefix); when(mockS3Operations.listVersions(any(), any())).thenThrow(new AmazonS3Exception("message")); try { s3Dao.listVersions(s3FileTransferRequestParamsDto); fail(); } catch (Exception e) { assertEquals(IllegalStateException.class, e.getClass()); assertEquals("Error accessing S3", e.getMessage()); } } finally { ReflectionTestUtils.setField(s3Dao, "s3Operations", originalS3Operations); } }
when(mockS3Operations.listVersions(any(), any())).thenReturn(versionListing); when(mockS3Operations.deleteObjects(any(), any())).thenThrow(new AmazonClientException("message"));
@Test public void testListVersionsAssertHandleAmazonClientException() { S3Operations originalS3Operations = (S3Operations) ReflectionTestUtils.getField(s3Dao, "s3Operations"); S3Operations mockS3Operations = mock(S3Operations.class); ReflectionTestUtils.setField(s3Dao, "s3Operations", mockS3Operations); try { String s3BucketName = "s3BucketName"; String s3KeyPrefix = "s3KeyPrefix"; S3FileTransferRequestParamsDto s3FileTransferRequestParamsDto = new S3FileTransferRequestParamsDto(); s3FileTransferRequestParamsDto.setS3BucketName(s3BucketName); s3FileTransferRequestParamsDto.setS3KeyPrefix(s3KeyPrefix); when(mockS3Operations.listVersions(any(), any())).thenThrow(new AmazonClientException("message")); try { s3Dao.listVersions(s3FileTransferRequestParamsDto); fail(); } catch (Exception e) { assertEquals(IllegalStateException.class, e.getClass()); assertEquals("Failed to list S3 versions with prefix \"s3KeyPrefix\" from bucket \"s3BucketName\". Reason: message", e.getMessage()); } } finally { ReflectionTestUtils.setField(s3Dao, "s3Operations", originalS3Operations); } }
s3FileTransferRequestParamsDto.setS3KeyPrefix(s3KeyPrefix); when(mockS3Operations.listVersions(any(), any())).then(new Answer<VersionListing>()
versionListing.setVersionSummaries(Arrays.asList(s3VersionSummary)); when(mockS3Operations.listVersions(any(), any())).thenReturn(versionListing);
VersionListing versionListing = s3Operations.listVersions(listVersionsRequest, null); assertEquals(1, CollectionUtils.size(versionListing.getVersionSummaries())); assertEquals(TARGET_S3_KEY, versionListing.getVersionSummaries().get(0).getKey());
VersionListing versionListing = s3Operations.listVersions(listVersionsRequest, null); assertEquals(1, CollectionUtils.size(versionListing.getVersionSummaries())); assertEquals(TARGET_S3_KEY, versionListing.getVersionSummaries().get(0).getKey());
VersionListing versionListing = s3Operations.listVersions(listVersionsRequest, null); assertEquals(2, CollectionUtils.size(versionListing.getVersionSummaries())); for (int i = 0; i < 2; i++)
VersionListing versionListing = s3Operations.listVersions(listVersionsRequest, null); assertEquals(2, CollectionUtils.size(versionListing.getVersionSummaries())); for (int i = 0; i < 2; i++)